The question is unclear, do you want to set behavior to create new driver for each test or to reuse driver instance? you should use selenium.singletone=method
if you want to create new driver instance for each testcase. it will tear down driver instance after test get completed.
The code you have provided to create driver instance is not required when using qaf. To set which driver to use, you need to set driver.name
property.
In order to use local driver, if remote word not used in driver name, it will use local driver. For instance chromeDriver
refers to running chromdriver in local system. with qaf version 3+ you don't need to download driver executable or don't need to set webdriver.chrome.driver
. It uses driver manager to download and set driver executable depending on local browser version.
if you want to set specific capability you can set using properties or using driver listener.
all you need to do is, in properties file set properties:
driver.name=chromeDriver
#set additional capabilities if required
#chrome.additional.capabilities={}
In code:
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();
If you want driver instance anywhere in code:
QAFExtendedWebDriver driver = (QAFExtendedWebDriver)TestBaseProvider.instance().get().getUiDriver();
//another way
QAFExtendedWebDriver driver = new WebDriverTestBase().getDriver();
Refer: