Capybara с Selenium Webdriver click_link не работает, когда текст ссылки имеет разрыв строки - PullRequest
0 голосов
/ 14 июля 2011

Я использую Selenium2 с Capybara 1.0.0, WebDriver и Cucumber 1.0.0, работающими на рабочей станции Windows 7.

У меня возникла проблема с моими тестами Cucumber, когда некоторые ссылки просто не доходятщелкнул.У нас есть несколько сотен сценариев и несколько неудачных попыток по команде click_link.Я обнаружил, что эти ссылки имеют разрыв строки в тексте ссылки, потому что текст ссылки шире, чем область, которую он занимает.Проблема возникает в Firefox и IE (я не проверял другие браузеры).

Я нашел эту информацию, которая, кажется, охватывает эту тему: Очевидно, WebDriver нажимает на центральную точкупрямоугольное пространство для ссылки.Когда текст ссылки разрывается, и во второй строке появляется только одно слово, WebDriver щелкает за пределами ссылки.

Я собираюсь попытаться реализовать обходной путь, который они упоминают в заявке (отправьте ENTERнажатие клавиши на ссылку) но это должно быть временное исправление.Кто-нибудь знает лучший способ обойти эту проблему?Я думаю, что многие люди столкнутся с этой проблемой, или я делаю что-то не так?

1 Ответ

3 голосов
/ 05 августа 2011

Я наконец-то получил обходной путь для работы.Проблема была в отправке ключа «enter», когда он должен был быть «return».

Для тех из вас, кто использует капибару и огурец, это работает:

When /^I click "(.*)"$/ do |linkText|
     link=find_link(linkText)
     link.native.send_keys([:return])
end
...