我正在为我的 Java webtests 使用HtmlElements
( https://github.com/yandex-qatools/htmlelements ) 框架。是否可以在里面获取 webdriver 的实例HtmlBlock
?例如,在某些字段中实现额外的逻辑或实现等待ajax
完成的功能。
问问题
341 次
2 回答
2
看看这个代码片段:
@Name("Search form")
@FindBy(xpath = "//form[@class='f1']")
public class SearchArrow extends Test1 {
public WebDriver driver;
}
public class SearchPage {
@FindBy(xpath = "//form[@class='f1']")
private SearchArrow searchArrow;
public SearchPage(WebDriver driver) {
HtmlElementLoader.populatePageObject(this, driver);
searchArrow.driver = driver;
}
}
原文:https ://gist.github.com/artkoshelev/4751a4f1b34211e43f4e
于 2014-10-14T08:50:21.633 回答
0
据我了解你。您在页面块类中需要 WebDriver,而不是在 Page 类中。
简单但不优雅的方法是创建一个静态变量并在其中保存 WebDriver 实例,以便能够在代码中的任何位置使用 WebDriver。
另外我猜你在你的测试和你调用的页面构造函数中实例化页面
HtmlElementLoader.populatePageObject(this, driver);
但我认为你可以尝试手动初始化你的块。
class Page {
@FindBy(...)
HtmlBlock block;
public Page(){
HtmlElementLoader.populatePageObject(this, driver);
this.block = new HtmlBlock(driver);
}
}
并在 HtmlBlock 创建将 WebDriver 保存到本地字段的构造函数。
public HtmlBlock(WebDriver driver){
this.driver = driver;
HtmlElementLoader.populatePageObject(this, driver);
}
我不确定第二个变体,但这样的东西应该可以工作。
于 2015-09-11T11:24:01.343 回答