Путаница с функцией translate () при использовании ее для нечувствительности к регистру - PullRequest
0 голосов
/ 15 октября 2019

Я автоматизирую страницу, используя селен с java, и пытаюсь использовать xpath без учета регистра с помощью функции перевода следующим образом.

driver.findElement(By.xpath("//a[contains(translate(.,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'tools')]")).click();

Текст 'tools' присутствует на странице как 'Tools',[T as caps]

Теперь мой вопрос:

  • Что означает «.,» В приведенном выше коде?
  • Использование «инструментов» вместо'.,' дает все // ссылки. Причина?
  • Всякий раз, когда я использую 'Инструменты' вместо 'инструментов' в приведенном выше коде, это не работает.

Кто-то мне здесь помогает.

изображение 1 изображение 2

1 Ответ

0 голосов
/ 15 октября 2019

Теперь мой вопрос:

  • Что означает «.,» В приведенном выше коде?
  • Использование «инструментов» вместо «.,» Даетвсе // ссылки. Причина?
  • Всякий раз, когда я использую «Инструменты» вместо «инструментов» в приведенном выше коде, это не работает.

Шаг точки - это сокращенный синтаксис, от specs :

. выбирает узел контекста

Поскольку он используется в качестве параметра для функции, которая ожидает строку, будет приведенас помощью функции string().

Строка 'tools' всегда содержит строку 'tools', поэтому вы не фильтруете ни один выбранный элемент a, когда используете вместо .

С другой стороны, любая строчная строка никогда не будет содержать строку 'Tools', поэтому вы не сможете ничего выбрать.

...