firefox - Selenium::WebDriver::Error - 使用 WATIR 进行拖放操作
问题描述
我们正在尝试使用 WATIR 模拟拖放操作,但是,我们似乎得到了一些奇怪的错误作为回报。
首先,我们存储“拖动项目”及其目的地:
drag = @browser.trs(:draggable => 'true')
drop = drag[0]
destination = drag[1]
我们运行组合鼠标事件的第一个测试:
drop.fire_event("onmousedown")
@browser.driver.action.click_and_hold(drop).perform
@browser.driver.action.move_to(destination).click.perform
drop.fire_event("onmouseup")
我们运行的第二个测试使用了拖放方法:
@browser.driver.action.drag_and_drop_by(drop, 0, 500).perform
但是,这两种尝试都会导致相同的错误:
Selenium::WebDriver::Error::InvalidArgumentError: data did not match any variant of untagged enum PointerActionItem at line 1 column 225
./features/W1-Administering_a_Shotlist/W1.1-Shotlists/step_definitions/W1.1.4-Reorder_Shotlist.rb:10:in `/^SA drag the selected shotlist to reorder$/'
./features/W1-Administering_a_Shotlist/W1.1-Shotlists/W1.1.4-Reorder_Shotlist.feature:9:in `When SA drag the selected shotlist to reorder'
我们认为这个错误是指@browser.driver.action.
这两种方法中的引用,但不确定如何解决这个问题。
任何建议都将受到欢迎!
编辑 26/11/2018
根据以下建议,我们drag_and_drop_on
使用以下代码尝试了该方法:
draggable = @browser.trs(:draggable => 'true')
target = draggable[0]
destination = draggable[1]
target.drag_and_drop_on destination
sleep(5)
虽然这没有产生错误,但它似乎也没有产生任何结果(即将元素移动到target
元素的位置destination
)。
解决方案
该错误是由 geckodriver 0.22 https://github.com/mozilla/geckodriver/issues/1375中的错误引起的
尝试降级 geckodriver,看看它是否有效。
Watir 有一个直接的方法:
draggable.drag_and_drop_on droppable
推荐阅读
- linux - 如何在不同版本的linux中从命令结果中提取字段?
- python - 使用 Python 的 Kafka Flink
- python - 部署到 Heroku 时是否可以忽略服务器上的文件而不重置它?
- excel - 从 =index 中删除重复项,在 excel 中有多个匹配项
- python - 无法从 mailchimp API 获得响应
- android - 使用 Facebook 登录小部件按钮时,Facebook 登录意图被调用两次
- unit-testing - 我们可以使用 maven-surefire-plugin 在同一个项目中执行 JUnit 5 和 TestNG 测试吗?
- swift - 用动画绘制路径
- prestashop - 按钮点击/链接调用函数
- kiwi-tcms - 尝试设置从测试执行向 JIRA 报告问题