【发布时间】:2019-06-05 05:09:08
【问题描述】:
我注意到,当我使用 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 发生更改时,我必须在所有使用它的地方更改它。
那么这个问题的最佳解决方案是什么?
【问题讨论】:
-
您可能需要在CodeReview 上发布相同的内容以获得您已经工作的代码的改进版本
-
你可以使用 POM... 见:swtestacademy.com/page-object-model-c
-
谢谢,这个链接很有用
标签: c# selenium xpath readable