假设我已将WebElment存储在 LoginPage.java 类中,如下所示。
@FindBy(xpath="//input[@name='user_name']") WebElement username;
现在从我的测试文件中说 VerifyLogin.java ,我想访问存储在 LoginPage.java 文件上方的用户名的xpath,类似这样的
LoginPage loginPage = PageFactory.initElements(driver, LoginPage.class);
loginPage.username;//then it should return the xpath //input[@name='user_name']
我知道上述方法是错误的,但是有什么方法可以只获取可以在VerifyLogin文件中使用的LoginPage文件中存储的xpath?
答案 0 :(得分:1)
如果您在页面对象之外需要它,那么您的设计就不好了。
无论如何,如果您真的想要,以下应该完成工作
@FindBy(xpath="//input[@name='user_name']")
public WebElement username;
new YourPageObject().username;
答案 1 :(得分:1)
不确定在完成xpath后为什么需要查看xpath,但是可以执行以下操作:
public final String xUserName = "//input[@name='user_name']";
@FindBy(xpath = xUserName)
public WebElement username;
final
属性是必需的。
通过这种方式,您可以将路径存储为字符串,并在POM中使用该字符串,但仍可将其作为字符串读取。我以x
开始String变量,所以我知道String是xpath格式的。以c
开头的CSS选择器表示法。
我做了类似的事情有两个原因:
但是要回答直接的问题,否,您不能从POM变量获取xpath,因为该信息未存储。该变量是一个WebElement,并且不在乎您为它分配了什么方法。就像问字符串是如何创建的。