как точно соответствовать, используя: селектор класса в watir-webdriver - PullRequest
3 голосов
/ 16 февраля 2012

Относительно обратно несовместимого изменения Watir 0.5.x Поиск элементов по: class теперь соответствует частичным атрибутам класса.

Как мне получить старое поведение?То есть, чтобы соответствовать точному имени класса.

Это нарушает мой код, в одном случае:

# expand all multiple records
 while  $browser.div(:class => "expander").exists?  
  $browser.div(:class => "expander").click
 end

потому что однажды .click ed, div ' class становится "expander hasChildren" (и, возможно, другими классами, в зависимости от цвета и содержимого строки таблицы).Есть ли лучший способ написать этот код, который разворачивает все строки, которые все еще свернуты?

1 Ответ

4 голосов
/ 16 февраля 2012

Чтобы соответствовать точному имени класса, вы можете использовать регулярное выражение с начальным и конечным якорями:

$browser.div(:class => /^expander$/).exists?

Это будет точно соответствовать «expander», но не «expander hasChildren» или «что-то expander».

По вашему другому вопросу относительно того, есть ли лучший способ развернуть все строки, я думаю, что это действительно зависит от того, как выглядит HTML для страницы.У вас есть пример?Когда у меня возникла похожая проблема с аналогичным элементом управления, я смог использовать структуру div-ов вокруг интерактивных, чтобы сделать поиск более конкретным.

...