在Selenium PageObjects中,我没有实例化任何web驱动程序实例,也没有如下所示进行编码
@FindBy(id = "userID")
WebElementFacade txtusername;
我试图在Selenium Page对象函数中实现以下代码。
Actions action = new Actions(driver);
WebElement mainMenu = driver.findElement(By.linkText("MainMenu"));
action.moveToElement(mainMenu).moveToElement(driver.findElement(By.xpath("submenuxpath"))).click().build().perform();
有谁能建议我,在使用页面对象模型时,如何在上述代码中使用webdriver实例?
有两种方法。
第一种方法:可以在创建webdriver实例的类中为其创建getter并使用它。
第二种方法:可以继承一个类,在该类中创建webdriver实例,然后再次使用该驱动程序。
对我来说,我创建了一个基类,其中初始化了我的网络驱动程序,并放置了最有用的方法(如等待元素、导航到页面等)。继承这个类允许我所有的页面对象拥有一系列非常有用的功能。如果需要,我的每个PageObject都使用基类的网络驱动程序实例。
您可以将驱动程序
实例保留在父类中,所有页面对象都从父类继承。
public abstract class AbstractPage {
protected WebDriver driver;
protected AbstractPage(WebDriver driver)
{
this.driver = driver;
}
}
public class ExamplePage extends AbstractPage {
@FindBy(id = "userID")
WebElementFacade txtusername;
public ExamplePage(WebDriver driver) {
super(driver);
}
public void someMethod() {
Actions action = new Actions(driver);
WebElement mainMenu = driver.findElement(By.linkText("MainMenu"));
action.moveToElement(mainMenu).moveToElement(driver.findElement(By.xpath("submenuxpath"))).click().build().perform();
}
}
我们如何使用Testng在硒网络驱动程序中选择下拉值?
我试图启动firefox浏览器,并使用selenium webdriver打开一个网页示例< code>google.com。我成功地启动了浏览器,但启动网页时出现了一些问题。我得到的错误是 线程“main”中的异常 org . open QA . selenium . remote . unreachablebrowserexception:无法启动新会话。 可能的原因是远程服务器地址无效或浏览
你好,我有这个文件 我想知道如何使用参数识别文档,并通过查找带有“Car”参数的产品并使用MongoDB Java驱动程序将价格更新为15来更新参数中的特定对象。 谢谢你
我正在使用PageObjects在Selenium Webdriver中制作一个测试套件,但我怀疑,即使驱动程序指向不同的框架,WebElement引用的实例是否可以工作?我为之编写测试的网站有很多框架(不,我不能停止使用框架:-),每个网站上的一个框架元素是一个顶栏。我想为这个框架创建一个页面对象,我可以从包含它的其他页面对象中初始化和使用它。 但我怀疑阉羊你可以使用WebElements当驱动
根据Selenium WebDriver文档,我们可以将名称或句柄传递给driver.switchTo().window(nameOrHandle);为了获取句柄,我们有getWindowHandle。如何根据窗口名称打开新窗口?如何获取当前窗口名称? / ***将此驱动程序未来命令的焦点切换到具有给定名称/句柄的窗口。* *有关详细信息,请参阅W3C WebDriver规范*。**@param
问题内容: 我有一个从相同的基类继承的以下硒测试套件,当我运行整个测试套件时,如何使测试使用相同的Web驱动程序实例?我也想单独运行每个测试。我相信这将大大减少运行套件所需的时间。 该测试是从maven运行的,而maven依次运行每个测试类。 所有测试均继承自的基类 测试例 问题答案: 我对JUnit不太满意…似乎您正在尝试此处建议的解决方案: jUnit4.x中Suite执行之前和之后的挂钩 这