在Selenium中标识动态文本框的句柄
我试图在Selenium中处理动态标签名称 假设我有:在Selenium中标识动态文本框的句柄,selenium,selenium-webdriver,Selenium,Selenium Webdriver,我试图在Selenium中处理动态标签名称 假设我有: Website 1 > Login page > Username : TextBox Website 2 > Login page > User : TextBox Website 3 > Login page > Login : TextBox 因此,有3种不同类型的登录标签名称,显然它们的文本框定位器名称或ID也会有所不同。 如何保持通用性,以便代码直接关注登录文本框以输入用户名,
Website 1 > Login page > Username : TextBox
Website 2 > Login page > User : TextBox
Website 3 > Login page > Login : TextBox
因此,有3种不同类型的登录标签名称,显然它们的文本框定位器名称或ID也会有所不同。
如何保持通用性,以便代码直接关注登录文本框以输入用户名,而不考虑文本框的不同id、名称或xpath
任何建议都会大有帮助。这就是模式可以帮助您的地方
这里的想法是定义一个LoginPage
类(),该类将包含“login”、“password”字段、“submit”按钮以及其他所需的所有内容。您可以让构造函数定义特定于网站的定位器,也可以将LoginPage
子类化,并让WebSite1LoginPage
、WebSite2LoginPage
等类具有自定义定位器
在任何情况下,这种方法都可以帮助您抽象出登录页面并隐藏实现/位置详细信息,从而使您的测试易于阅读和支持
另见:
if website1
login = "username"
elsif website2
login = "user"
elsif website3
login = "login"
end
element = find("xpath#{login}xpath")