gpt4 book ai didi

ruby - 瓦蒂尔。滚动到页面的某个点

转载 作者:数据小太阳 更新时间:2023-10-29 06:57:29 25 4
gpt4 key购买 nike

我正在尝试在网站上自动进行在线调查,但每次都会出现此错误:

Selenium::WebDriver::Error::UnknownError: unknown error: Element is not clickable at  
point (561, 864). Other element would receive the click: a id="habla_oplink_a"

class="habla_oplink_a_normal hbl_pal_header_font_size hbl_pal_title_fg "

我需要了解的是如何滚动到页面的特定点,以便我的脚本可以继续填写页面上的调查。

这是我的代码,它设法填写了调查的一部分,但当它到达浏览器内不可见的行时失败(需要用户向下滚动到的行):

buttons = browser.elements(:class => "assessment-choice")

buttons.each do |button|
button.click
end

我还希望能够更改我的代码,以便它只选择一个特定的选项,但页面上的 HTML 不是很友好。

这是我正在查看的网页:https://staging2.clearfit.com/assessment/assessment/95867fb272df436352a0bd5fbdd

调查选项之一的 HTML:

<a id="answers_79_0" class="assessment-choice" onmouseover="answerOver(this)"    onmouseout="answerOut(this)" onclick="setAssessmentAnswer(this, 3, '0', '79',   '#answers_49839163')">Strongly<br>Agree</a>

最佳答案

使用execute_script

要滚动到某个元素,您需要执行 javascript:

browser.execute_script('arguments[0].scrollIntoView();', button)

这可以在下面的脚本中看到。如果没有要滚动的行,聊天选项卡会覆盖导致异常的按钮之一。

require 'watir-webdriver'

browser = Watir::Browser.new :chrome
browser.goto 'https://staging2.clearfit.com/assessment/assessment/95867fb272df436352a0bd5fbdd'

buttons = browser.elements(:class => "assessment-choice")

buttons.each do |button|
browser.execute_script('arguments[0].scrollIntoView();', button)
button.click
end

使用 watir-scroll gem

请注意,您可以安装 watir-scroll gem使滚动线更好。 gem 允许该行简单地是:

browser.scroll.to button

脚本看起来像这样:

require 'watir-webdriver'
require 'watir-scroll'

browser = Watir::Browser.new :chrome
browser.goto 'https://staging2.clearfit.com/assessment/assessment/95867fb272df436352a0bd5fbdd'

buttons = browser.elements(:class => "assessment-choice")

buttons.each do |button|
browser.scroll.to button
button.click
end

关于ruby - 瓦蒂尔。滚动到页面的某个点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20057954/

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