gpt4 book ai didi

ruby - 绕过 Element 的方法无法滚动到 View 中 - Watir-webdriver with Ruby

转载 作者:数据小太阳 更新时间:2023-10-29 07:00:51 26 4
gpt4 key购买 nike

因此,我们的页面中有以下代码:

<div class="toggle-wrapper">
<input id="HasRegistration_true" class="registration_required toggle" type="radio" value="True" name="HasRegistration" data-val-required="The HasRegistration field is required." data-val="true">
<label for="HasRegistration_true" class="">On</label>
<input id="HasRegistration_false" class="registration_required toggle" type="radio" value="False" name="HasRegistration" checked="checked">
<label class="checked" for="HasRegistration_false">Off</label>
</div>

这是 2 个单选按钮。 '开和关'。 “关闭”是默认值。

使用 Watir-webdriver 和 Ruby,我们想要选择“打开”单选按钮。我们这样做:

browser.radio(:id => "HasRegistration_true").set

但在这样做时,我们得到以下错误:

`WebElement.clickElement': Element cannot be scrolled into view:[object HTMLInputElement] (Selenium::WebDriver::Error::MoveTargetOutOfBoundsError)

我们知道 Selenium 2 将页面滚动到元素,因此尝试向下滚动是没有用的。我们始终使用最新版本的 watir-webdriver 和 ruby​​。

我们不能更改页面的 HTML,因为我们是 QA 工程师。

最佳答案

这里有两个对我有用的解决方案:

有一个名为 watir-scroll 的 Ruby gem可以工作。

然后

require 'watir-scroll'
browser.scroll.to browser.radio(:id, "HasRegistration_true")

如果你不想添加 gem,我的同事建议了一些(对我来说)有点令人惊讶的东西,它与上面的代码具有相同的效果:

browser.radio(:id, "HasRegistration_true").focus
browser.radio(:id, "HasRegistration_true").set

在我的代码中,“.focus”直接滚动到之前不可见的元素。它也可能对您有用。

关于ruby - 绕过 Element 的方法无法滚动到 View 中 - Watir-webdriver with Ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14970251/

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