鲁比·沃蒂尔自动化 : Unable to locate google contact input fields and set value on them

标签 ruby automation watir locate

这是来自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

最佳答案

输入字段的 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}"

其他字段也可以进行类似操作。

关于鲁比·沃蒂尔自动化 : Unable to locate google contact input fields and set value on them,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59968974/

相关文章:

java - Selenium Java 中的 fluidwait

ruby - 如何从主页加载后加载特定数据的页面中抓取数据?

ruby-on-rails - 在 Rails 中是否有比 Observers 更直接的方式来执行发布/订阅模式?

ruby - 使用 rspec 中的输入文件进行测试。如何组织?

python - 使用Perl、Python或Ruby,如何编写一个程序到 "click"在预定的时间显示在屏幕上?

ruby - 有没有办法使用 watir 在 firefox 的新选项卡或窗口中打开链接

ruby - Watir 和 Safari 上的链接有问题吗?

ruby - Jekyll 在构建时输出 Gemfile、Gemfile.lock。我该如何/应该如何防止这种情况?

c# - Windows 用户界面自动化

windows - 保存新文档时启动的批处理文件