【问题标题】:watir element click intercepted:拦截的watir元素点击:
【发布时间】:2021-02-26 22:00:56
【问题描述】:

我正在尝试使用 ruby​​/watir 单击包含“添加到购物车”字样的按钮。

如果我使用

cart = browser.link(text: 'Add To Cart') 
if cart.present?
   cart.click

它可以工作(项目被添加到购物车)但我得到一个元素点击被拦截:元素...在点 (441, 20) 是不可点击的。其他元素会收到点击:(Selenium::WebDriver::Error::ElementClickInterceptedError

我是 ruby​​/watir 的新手,因此我们将不胜感激。

【问题讨论】:

  • 此处是我试图读
    元素加入购物车

标签: ruby watir


【解决方案1】:

试试这个代码是否有效。如果它不起作用,那么正如您所说,即使在错误之后,它也可以工作,所以我假设我们必须点击覆盖目标元素的元素。所以粘贴整个错误消息。错误消息必须包含实际隐藏的元素。

require 'watir'
b = Watir::Browser.new
cart = browser.link(text: 'Add To Cart')
if cart.present?
  b.wait_while { cart.obscured? }
  cart.click
end

更新

好的,您还需要尝试其他两种方法。

一种是使用JavaScript。

cart.click!

或单击覆盖您的元素的元素。从您的错误中,该元素是具有类属性“行”的划分。如果您有关于该元素的更多详细信息,您可以自己定位该元素。但是现在,有了给定的细节,我就形成了定位器。

b.div(class: 'row').click

【讨论】:

  • 仍然出现错误。这里是元素点击拦截:元素
    ...
    不可点击在点 (441, 20)。其他元素会收到点击:
    ...
    (Selenium::WebDriver::Error::ElementClickInterceptedError) (Session info: chrome=86.0.4240.198)
  • @ggenovez 我已经更新了答案。检查并告诉我。
  • 我试过点击!并收到同样的错误。另一个元素是侧面菜单。选择它会将我带到不同的页面。不知道为什么会有重叠。它没有关联的“添加到购物车”文本。
  • 元素的图像link 还有其他搜索按钮元素的方法吗? cart = browser.div(class: 'btn.primary.wishlist_cart_button') 永远找不到元素。
  • 能给我网址吗?
【解决方案2】:

有几种方法可以让你弄清楚发生了什么

试着环顾四周

检查 watir 是否看到多个链接,这应该产生 1

browser.as(text: 'Add To Cart').count

然后尝试点击每个元素,如果它有超过 1 个

browser.as(text: 'Add To Cart')[0].click

browser.as(text: 'Add To Cart')[1].click

或者尝试点击它的父级,链接可以在叠加层的后面

browser.a(text: 'Add To Cart').parent.click

然后检查是否可以通过直接单击父元素来完成

browser.div(class: 'wishlist_cart_button').click

或者你可以尝试不同的方法,通过其他属性查找元素

browser.a(href: /setCurrentId/).click

也许还有一个带有 id 的父元素,这样你就可以更容易地找到购物车按钮

browser.element(id: "asdf").a(text: "Add To Cart").click

browser.element(id: "asdf").as.last.click

如果上面的一切都失败了,那么用 selenium 来点击它,因为 watir 担心点击被拦截

browser.driver.action.move_to(browser.a(text: 'Add To Cart').wd).click.perform

希望有所帮助:D

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-07
    • 2021-09-04
    • 2022-01-05
    • 1970-01-01
    • 2019-11-08
    • 2021-10-28
    • 2020-02-13
    • 2020-02-23
    相关资源
    最近更新 更多