如何设置驱动程序



我想将本地驱动程序设置为selenium驱动程序。问题是qaf每次都会启动一个新的驱动程序。

public static QAFExtendedWebDriver driver;
public static QAFExtendedWebDriver localDriver(){
System.setProperty("webdriver.chrome.driver","src/main/resources/webdriver/chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("debuggerAddress","localhost:9222");
ChromeDriver driver1 = new ChromeDriver(options);
QAFExtendedWebDriver webDriver = new QAFExtendedWebDriver(driver1);
driver = webDriver;
return driver;
}

如果我想点击一个QAF网络元素,它不会使用我的本地驱动程序

new QAFExtendedWebElement("Company").click();

有人能帮我吗?

问题不清楚,您想设置行为为每个测试创建新的驱动程序还是重用驱动程序实例?如果您想为每个测试用例创建新的驱动程序实例,那么应该使用selenium.singletone=method。它将在测试完成后拆除驱动程序实例。

使用qaf时,不需要您提供的用于创建驱动程序实例的代码。要设置要使用的驱动程序,需要设置driver.name属性。

为了使用本地驱动程序,如果驱动程序名称中没有使用远程单词,它将使用本地驱动。例如chromeDriver表示在本地系统中运行chromdriver。对于qaf版本3+,您不需要下载驱动程序可执行文件,或者不需要设置webdriver.chrome.driver。它使用驱动程序管理器根据本地浏览器版本下载和设置驱动程序可执行文件。

如果您想设置特定的功能,可以使用属性或使用驱动程序侦听器进行设置。

您所需要做的就是,在属性文件集中设置属性:

driver.name=chromeDriver
#set additional capabilities if required
#chrome.additional.capabilities={}

代码中:

new QAFExtendedWebElement("element.locator").click();
//other way using common steps
//import static com.qmetry.qaf.automation.step.CommonStep.click;
click("element.locator")
//Another way of using element factory
//import static com.qmetry.qaf.automation.ui.webdriver.ElementFactory.$;
$("element.locator").click();

如果您想在代码中的任何位置使用驱动程序实例:

QAFExtendedWebDriver driver = (QAFExtendedWebDriver)TestBaseProvider.instance().get().getUiDriver();
//another way
QAFExtendedWebDriver driver = new WebDriverTestBase().getDriver();

参考:

  • https://qmetry.github.io/qaf/latest/properties_list.html
  • https://qmetry.github.io/qaf/latest/how_to_use_driver.html
  • https://qmetry.github.io/qaf/latest/locating_elements.html

最新更新