Заполнение формы с помощью Selenium работает на Chrome, но не на Firefox - PullRequest
0 голосов
/ 06 мая 2018

Я пытаюсь заполнить текстовую область, используя Selenium и ruby ​​в Firefox, но по какой-то причине приведенный ниже код не работает. Когда я переключаю тот же сценарий на драйвер Chrome, он работает.

browser.textarea(:placeholder => "Add a comment…").set "#{randomly_chosen_comment}"

На Firefox я получаю эту ошибку:

/Users/miajohansson/.rvm/gems/ruby-2.2.4/gems/watir-6.10.3/lib/watir/elements/element.rb:623:in `raise_present': element located, but timed out after 30 seconds, waiting for #<Watir::TextArea: located: true; {:placeholder=>"Add a comment…", :tag_name=>"textarea"}> to be present (Watir::Exception::UnknownObjectException)
    from /Users/miajohansson/.rvm/gems/ruby-2.2.4/gems/watir-6.10.3/lib/watir/elements/element.rb:669:in `rescue in element_call'
    from /Users/miajohansson/.rvm/gems/ruby-2.2.4/gems/watir-6.10.3/lib/watir/elements/element.rb:680:in `element_call'
    from /Users/miajohansson/.rvm/gems/ruby-2.2.4/gems/watir-6.10.3/lib/watir/user_editable.rb:11:in `set'
    from instabot.rb:68:in `block (2 levels) in <main>'
    from instabot.rb:36:in `each'
    from instabot.rb:36:in `block in <main>'
    from instabot.rb:35:in `loop'
    from instabot.rb:35:in `<main>'

Я работал над этим в течение многих часов, и я не могу понять, почему это не работает. Мне нужно, чтобы он работал на Firefox. Любая помощь очень ценится!

1 Ответ

0 голосов
/ 07 мая 2018

Я не могу воспроизвести вашу проблему; это работает для меня без использования устаревшего драйвера. Вы используете последнюю версию Firefox & geckodriver?

Одна проблема заключается в том, что точки - это не точки, а разные юникоды; это будет отлично работать с последним гекодривером:

browser.textarea(placeholder: /Add a comment/).set "#{randomly_chosen_comment}"

Или, поскольку это первый textarea на странице, вы можете просто сделать:

browser.textarea.set "foo"
...