gpt4 book ai didi

Ruby selenium webdriver 拖放

转载 作者:太空宇宙 更新时间:2023-11-03 16:02:55 25 4
gpt4 key购买 nike

我正在尝试使用 selenium webdriver 和 ruby​​ 执行拖放操作,我尝试了以下选项:

选项 1:基于 http://rubydoc.info/gems/selenium-webdriver/0.0.28/Selenium/WebDriver/Element#drag_and_drop_on-instance_method

el1 = @driver.find_element(:css, "div.captcha div.sliderCaptcha div.arrow")
el2 = @driver.find_element(:css, "div.captcha div.sliderCaptcha div.dottedBorder")

el1.drag_and_drop_on el2

选项 2:

el1 = @driver.find_element(:css, "div.captcha div.sliderCaptcha div.arrow")
el2 = @driver.find_element(:css, "div.captcha div.sliderCaptcha div.dottedBorder")
@driver.action.drag_and_drop(el1, el2).perform

选项 3:

el1 = @driver.find_element(:css, "div.captcha div.sliderCaptcha div.arrow")
el2 = @driver.find_element(:css, "div.captcha div.sliderCaptcha div.dottedBorder")
@browser.action.drag_and_drop(element, target).perform

当我执行 @driver.find_element(:css, "div.captcha div.sliderCaptcha div.arrow").click@driver.find_element(:css, "div. captcha div.sliderCaptcha div.dottedBorder").click 代码能够点击对象,即它能够找到元素但由于某种原因无法拖放。以上拖放选项均无效。

最佳答案

我在拖放方面取得了很大的成功,但我发现我必须将拖放分成几个 Action 才能让它在我的应用程序中工作。

例如,我必须在初始点击后休眠 500 毫秒,因为 javascript 要求用户在允许拖放之前按住该时间段。此外,我必须在初始拖动后重新找到放置目标,因为它只在拖动开始后出现。

我并不是说这会发生在您的应用程序中,但它可能会给您一些提示。

例如,我的代码看起来像这样;

el1 = @driver.find_element(:css, "div.captcha div.sliderCaptcha div.arrow")

el_in_between = @driver.find_element(:css, "div.something")

@browser.action.click_and_hold(el1).perform

sleep 0.5

@browser.action.move_to(el_in_between).perform

el2 = @driver.find_element(:css, "div.captcha div.sliderCaptcha div.dottedBorder")

@browser.action.move_to(el2).release.perform

希望这突出表明在某些网站中,拖放不像使用内置的 drag_and_drop 方法那么简单,并且可以拆分操作生成器

关于Ruby selenium webdriver 拖放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20722831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com