我注意到,当我使用 selenium Web 驱动程序与网页上的元素进行交互时,我的代码变得不可读,因为我使用了很多 XPath-s 来查找这些元素。例如:
driver.FindElement(By.XPath("//div[@class='login']//a[@href='#']"), Globals.TIMEOUT).Click();
var loginField = driver.FindElement(By.XPath("//div[@id='login_box']//input[@name='login_name']"));
jdriver.ExecuteScript("arguments[0].setAttribute('value', '" + login + "')", loginField);
var passwordField = driver.FindElement(By.XPath("//div[@id='login_box']//input[@name='login_password']"));
jdriver.ExecuteScript("arguments[0].setAttribute('value', '" + password + "')", passwordField);
driver.FindElement(By.XPath("//div[@id='login_box']//input[@type='submit']")).Click();
driver.FindElement(By.XPath("//div[@class='nameuser']"), Globals.TIMEOUT);
我认为我可以将 XPath 值放入常量字符串中,但在阅读代码时查看元素的实际 XPath 非常有帮助。但另一方面,当某些对象的 XPath 发生更改时,我必须在所有使用它的地方更改它。那么这个问题的最佳解决方案是什么?