Вчера было краткое обсуждение этого вопроса на gitter, но я нахожусь в сценарии, когда я знаю, что таблицы стилей внешнего интерфейса играют с текстом, то есть с заглавными буквами, в верхнем регистре и т. Д., И предоставленные тестовые данные не всегда будут в одном и том же кейс.
Теперь я считаю, что Selenium поддерживает только XPath 1, поэтому вы не можете использовать там функции верхнего / нижнего регистра, и единственный другой подход, о котором я знаю, - это подход преобразования (все на http://stackoverflow.com/questions/17368189/xpath-lower -case-to-get-a-collection-of-lowercased-values)
Так что мне просто было интересно, есть ли лучший способ сделать это? в идеале мне просто нужен лаконичный способ сказать a=blah
где blah может быть BlAH
и т. д.
эта ситуация все еще верна? Я также оказался в ситуации, когда у меня есть элементы для выбора с текстовыми значениями без учета регистра. и я изо всех сил пытаюсь запустить эту функцию.
Это старое, так что повторюсь. Но я думаю, что вы всегда должны выбирать, основываясь на правильном случае, и обновлять свои тестовые данные. Если нет, то я думаю, что ваш подход к проблеме / тесту неверен.
в некоторых тестовых случаях нет "правильного случая". и один из способов подойти к "неправильному" испытанию - это создать хрупкие требования, такие как очень точная обсадная колонна.
const SELECTOR = '.my-selector';
const buttonText = 'blabla';
let elements = $$(`${SELECTOR}`);
const buttons = elements.filter(
li =>
li
.getText()
.toLowerCase()
.indexOf(buttonText.toLowerCase()) > -1
);
const button = buttons[0];
Самый полезный комментарий
в некоторых тестовых случаях нет "правильного случая". и один из способов подойти к "неправильному" испытанию - это создать хрупкие требования, такие как очень точная обсадная колонна.