Как нажать на ссылку, на которой есть Javascript, используя Watir - PullRequest
1 голос
/ 30 января 2012

Я новичок в Watir и у меня есть сценарий, который является для меня блокирующим.Я должен нажать на ссылку ниже.Это показано как ссылка.Это какой-то нормальный забытый пароль ??нажмите здесь .... вариант, который есть в приложении, которое я тестирую.Посоветуйте, пожалуйста, как перейти по этой ссылке.Я также попробовал перечисленные ниже пути x, но не повезло.

<a href="javascript:forgot_password()"> 

x пути использовались без удачи:

1> ie.link(:xpath, "//img[@onclick='javascript:forgot_password()']").click
2> ie.link(:xpath,"//a[@href='javascript:forgot_password()']/").text # => "Click Here) "
3> ie.element_by_xpath("//link[contains(@href , 'javascript:forgot_password()')]/").click

Ответы [ 3 ]

4 голосов
/ 30 января 2012

Вы пробовали это?

browser.link(:href => "javascript:forgot_password()").click
0 голосов
/ 30 января 2012

Ваши селекторы xpath выглядят довольно смущенными, глядя на них.

Первая строка

ie.link(:xpath, "//img[@onclick='javascript:forgot_password()']").click

намеревается найти ссылку, но ищет изображение.Будет ли это когда-нибудь работать?

Попробуйте использовать

ie.link(:xpath, "//a[@onclick='javascript:forgot_password()']").click

или

ie.link(:xpath, "//a[@onclick='javascript:forgot_password()']").fire_event('onclick')

Это потенциально просто не вызывает событие onClick при использовании .click на элементе,Я не могу вспомнить, делает это или нет.

Не видя страницы, я не могу быть в этом уверен, но вам, возможно, не понадобится использовать xpath, чтобы найти этот элемент вообще.

Если текст «Нажмите здесь», вы можете использовать его вместо локатора.

ie.link(:text => "Click here").click

... или эквивалентный .fire_event('onclick')

Диагностировать проблему невероятно сложноне видя html, о котором идет речь, и точного запуска Watir (т. е. скопированного и вставленного непосредственно из вашего файла), так что эти предложения в значительной степени снимаются в темноте.

0 голосов
/ 30 января 2012

Сначала проверьте, работает ли xpath в вашей системе: в appart form watir gem вы должны установить REXML с версией более 3.1.6.

И я не знаю, что может быть не так с вашим кодом, потому чтоЯ не знаю, на какую страницу вы заходите, если можете, дайте нам ссылку.Лично я бы сделал что-то подобное, но может быть много альтернатив.

ie.link(:xpath, "//a[contains(@href='javascript:forgot_password')]/").click 
...