2

new QAFExtendedWebElement() only can find one element, if I want to find elements like use selenium directly, eg. driver.findElementsByXPath, which method should I used, please give an example.

user861594
  • 5,733
  • 3
  • 29
  • 45
Moon
  • 137
  • 1
  • 7

1 Answers1

0

You can achieve it by using driver object. In Java class for test case you can extend WebDriverTestCase and get driver object using getDriver() method. It will return QAFExtendedWebDriver If you Here is example:

public class SampleTestSuite extends WebDriverTestCase {
    @Test
    public void test1() {
        getDriver().get("/");
        List<QAFWebElement> eles = getDriver().findElements(locator);
        //List<QAFWebElement> eles = getDriver().findElements(By.name("q"));
    }
}

Refer locating elements for getting more help how to provide locator string.

In page class you can have @FindBy annotation:

public class HomePage extends WebDriverBaseTestPage<WebDriverTestPage>{
    @FindBy(locator = "locator")
    private List<QAFWebElement> eles;
}

Same way in component class you can use @FindBy. Anywhere else, you can get driver object as below:

QAFExtendedWebDriver driver = new WebDriverTestBase().getDriver();
user861594
  • 5,733
  • 3
  • 29
  • 45
  • Want to pass locator from step and call findElements. How can I pass locator variable and pass it to findElements method? Here my intend is to make findElements common method which can accept locator variable which can have any value. Pls suggest. – sanjay pujari Apr 14 '21 at 05:26