CSS Locator with contains() InvalidSelectorException using Selenium WebDriver

后端 未结 3 841
情深已故
情深已故 2021-02-04 16:17

I am learning Selenium Webdriver and trying to write a simple test script.

The intent is to get the About Google link on

3条回答
  •  旧时难觅i
    2021-02-04 17:09

    The main problem is at this line:

    driver.findElement(By.cssSelector("a:contains('About Google')"));

    css doesn't maintain contains() for Selenium WD - See here.

    For using contains() you have to use Xpath.

    With Xpath your locator will be:

    //a[contains(text(), 'About Google')]

    and for driver it will be as:

    driver.findElement(By.xpath("//a[contains(text(), 'About Google')]"));

    For finding links with Selenium you can use:

    driver.findElement(By.linkText("your link name here"));

    It is limitation of CSS selectors compare to Xpath:

    • you can't take parent element with css selectors (Xpath has xpath axes)
    • you can't use contains (it is only xpath privilege).

    BTW
    For processing Xpath locators from page you able to use extension for Firefox browser:

    • FirePath

    • Xpath Checker

提交回复
热议问题