Watir 错误 - 无法运行 Watir 代码示例

Posted

技术标签:

【中文标题】Watir 错误 - 无法运行 Watir 代码示例【英文标题】:Watir Error - Unable to run Watir code example 【发布时间】:2021-10-26 21:20:30 【问题描述】:

从http://watir.com/guides/form-example/ 运行以下脚本时,出现错误:

# Require the gems we want to use
require 'watir'
require 'webdrivers'
require 'faker'

# Initialize the Browser
browser = Watir::Browser.new

# Navigate to Page
browser.goto 'watir.com/examples/simple_form.html'

# Fill out Text Field Names
browser.text_field(id: 'first_name').set 'Luke'
browser.text_field(id: 'last_name').set 'Perry'

# Use Random Email Address via Faker gem
# Read more about Faker gem here: https://github.com/stympy/faker#readme
random_email = Faker::Internet.email
browser.text_field(id: 'email').set random_email

# Select List:
browser.select(id: 'country').select 'Norway'

# Checkboxes:
browser.checkbox(id: 'interests_cars').click
browser.checkbox(id: 'interests_dentistry').click

# Radio Button:
browser.radio(id: 'newsletter_no').click

# Use Radioset instead of Radio Button:
browser.radio_set(name: 'newsletter').select('Yes')

# Click Button:
browser.button(id: 'submitButton').click

# Evaluate Results:
browser.p(id: 'name').text == 'Hello Luke Perry,' # => true
browser.p(id: 'newsletter').text == "You will be receiving our newsletter at #random_email" # => true
browser.p(id: 'activities').text == 'We hope you continue to enjoy cars, dentistry in Norway' # => true

这是错误:

DevTools 监听 ws://127.0.0.1:61657/devtools/browser/97a9134d-96bb-47f6-83e8-56f09555e71e [8472:12912:0826/150047.561:ERROR:device_event_log_impl.cc(214)] [15:00:47.561] USB:usb_device_handle_win.cc:1048 无法从节点连接读取描述符:连接到系统的设备无法正常工作。 (0x1F) [8472:12912:0826/150047.589:ERROR:device_event_log_impl.cc(214)] [15:00:47.589] USB:usb_device_handle_win.cc:1048 无法从节点连接读取描述符:连接到系统的设备无法正常工作。 (0x1F)>

对于成功运行脚本有什么想法吗?

谢谢

【问题讨论】:

什么版本的 selenium、watir、chrome? 查看 gem 文件夹,它显示“selenium-webdriver-3.142.7”。 Chrome 版本是 92.0.4515.159,Watir 版本是 6.19.1。谢谢。 那里没有什么不寻常的地方。什么是堆栈跟踪? 对不起,我在这里缺乏知识。如何找到堆栈跟踪? 你是如何执行这段代码的?厄布?规范? rb 文件? 【参考方案1】:

啊,根据澄清一切都按预期工作,控制台输出中只有一些额外的噪音,基于“Chrome 尝试读取当前暂停的 USB 设备的属性”。

您可以放心地忽略此消息。

查看此处了解更多信息: USB: usb_device_handle_win.cc:1020 Failed to read descriptor from node connection error with ChromeDriver v87 / Chrome v87 using Selenium on Windows10

【讨论】:

这绝对是 Chrome 的问题,因为我能够使用 Firefox 成功运行脚本并获得预期的结果。 “回复您好 Luke Perry,您将通过 denae@lockman.info 收到我们的时事通讯,我们希望您继续享受挪威的汽车和牙科”。感谢您的回复! @msjanjua 我认为您应该在 Chrome 的页面上得到相同的结果,只是在标准输出中有额外的输出?还是提前退出代码? 提前退出代码并关闭页面。在 Firefox 中,页面保持打开并显示预期结果。 好的,这有点不同。能不能在开头设置$DEBUG=true,把结果放到gist.github.com,回复一个链接? 我将 $DEBUG=true 放在脚本的最开头并得到以下结果:gist.github.com/msjanjua/1858f6f068df280414378a743dd9709c 如果这就是您要查找的内容,请告诉我。

以上是关于Watir 错误 - 无法运行 Watir 代码示例的主要内容,如果未能解决你的问题,请参考以下文章

ruby 3和rails 6的watir:参数数量错误

watir goto 方法作为参数

Ruby Watir 表单下拉未找到

在 Windows XP 上安装 watir-webdriver 时出现“封送数据太短”错误消息

Watir - 当文件以html打开时如何保存pdf文件

使用ruby + watir-webdriver + cucumber和parallel_tests gem在多个浏览器中运行测试