Ruby Watir Automation: невозможно найти поля ввода контактов Google и задать для них значение - PullRequest
2 голосов
/ 29 января 2020

Это форма с https://contacts.google.com/ при добавлении нового контакта

enter image description here

Я пытался найдите их по xpath, по имени класса, по id, по метке, но не можете найти. Ниже приведен пример попытки найти по xpath

         browser.text_field(xpath: "//*[@id='c1']/div[2]/div[1]/div/div[1]/div/div[1]").set "#{firstname}"
         sleep (5)
         browser.text_field(xpath: "//*[@id='c1']/div[2]/div[3]/div/div[1]/div/div[1]/input").set "#{lastname}"
         sleep (5)
         browser.text_field(xpath: "//*[@id='c4']/div/div[1]/div/div[1]/div/div[1]/input").set "#{company}"
         sleep (5)
         browser.text_field(xpath: "//*[@id='c4']/div/div[2]/div/div[1]/div/div[1]/input").set "#{job}"
         sleep (5)
         browser.text_field(xpath: "//*[@id='c6']/div[1]/div[2]/div[1]/div/div[1]/input").set "#{number}"
         sleep (5)
         browser.text_field(xpath: "//*[@id='c15']/div/div[1]/div[2]/textarea").set "#{notes}"
         sleep (5)
         browser.div(xpath: "//*[@id='ow44']/div[3]/div/button[2]/div").wait_until(&:present?).click

1 Ответ

2 голосов
/ 29 января 2020

HTML полей ввода выглядит следующим образом:

<input type="text" class="whsOnd zHQkBf" jsname="YPqjbf" autocomplete="off" tabindex="0" aria-label="First name" autofocus="" data-initial-value="bbbb" badinput="false" dir="ltr">

Обратите внимание, что есть атрибут aria-label, который обеспечивает хорошее описание поля, что делает его хорошим локатором.

Попробуйте:

browser.text_field(aria_label: 'First name').set "#{firstname}"

То же самое можно сделать с другими полями.

...