【发布时间】:2019-05-16 02:02:04
【问题描述】:
目前在我的firefox驱动中,如果我想定位一个元素,我这样写代码:
WebDriver firefoxDriver = new FirefoxDriver();
...
firefoxDriver.findElement(By.id("testid")).isDisplayed();
or
firefoxDriver.findElement(By.name("testname")).isDisplayed();
or
firefoxDriver.findElement(By.class("testclass")).isDisplayed();
etc
但是,我将这些元素放在一个单独的页面中,如下所示:
@FindBy(id = "testid")
public WebElement testIdElement;
@FindBy(name = "testname")
public WebElement testNameElement;
@FindBy(class = "testclass")
public WebElement testClassElement;
我想像下面这样搜索我的元素,但下面不起作用,因为它需要一个 By:
firefoxDriver.findElement(elementsPage.testIdElement);
or
firefoxDriver.findElement(elementsPage.testNameElement);
or
firefoxDriver.findElement(elementsPage.testClassElement);
解决这种情况的最佳方法是什么?我真的不想继续对元素进行硬编码,而是更好地使用我已经在元素列表中定义的元素。
【问题讨论】:
-
这个问题已经回答了。请看这里:stackoverflow.com/questions/18436102/…
-
您不必找到元素,它们已经被找到了......这就是
testIdElement和其他的WebElements。就用testIdElement.click()之类的吧。