Поиск ссылки с использованием текста в CSS Selector не работает - PullRequest
0 голосов
/ 17 ноября 2018

Я пытаюсь найти ссылку ниже, используя a[text='This is a link'] и a[innertext='This is a link'], но оба они не работают.

Я знаю, что это может быть достигнуто с помощью XPath или другими способами, но мне любопытнопочему CSS Selector, который я использовал, не работает.см. ссылку .

<a title="seleniumframework" href="http://www.seleniumframework.com" target="_blank">This is a link</a>

Ответы [ 3 ]

0 голосов
/ 17 ноября 2018

Правильный выбор CSS для вашего случая:

a[title="seleniumframework"]

или

a[href="http://www.seleniumframework.com"]

Вы также можете использовать это: a[target="_blank"], но приведенные выше более уникальны.

Надеюсь, это поможет вам!

0 голосов
/ 18 ноября 2018

Вы пытаетесь найти ссылку с помощью следующих CssSelector s:

  • a[text='This is a link']
  • a[innertext='This is a link']

Согласно Issue#987 и Issue#1547:

The :contains pseudo-class isn't in the CSS Spec and is not supported by either Firefox or Chrome (even outside WebDriver).

Подробное обсуждение можно найти в selenium.common.exceptions.InvalidSelectorException со значением «span: includes ('string')"

Решение

В соответствии с HTML вы можете использовать любое из следующих решений:

  • CssSelector с использованием атрибута title:

    "a[title='seleniumframework']"
    
  • CssSelector с использованием атрибута href:

    "a[href='http://www.seleniumframework.com']"
    
  • CssSelector с использованиематрибуты title и href:

    "a[title='seleniumframework'][href='http://www.seleniumframework.com']"
    
0 голосов
/ 17 ноября 2018

Поскольку вы пытаетесь использовать селектор атрибутов, вы можете выбирать только те атрибуты, которые есть у элемента гиперссылки.

text не доступен атрибут в html, поэтому его выбор с помощью css не будет работать. Скорее, вы должны попытаться использовать другой атрибут, например, [title = seleniumframework].

...