【问题标题】:selenium click position on firefox and chrome硒在Firefox和Chrome上的点击位置
【发布时间】:2017-10-16 02:13:18
【问题描述】:

我在 java 中使用 selenium webdriver 并且有一个输入类型的文本,它的一半身体在一个浮动的 div 下。所以左半边是可以到达的,但不是右边。

我正在使用 firefox 和 chrome 对其进行测试。在 firefox 下它工作得很好,文本框收到点击,测试继续。

但在 chrome 下,我收到此错误消息 元素在点 (490, 327) 处不可点击。其他元素会收到点击:...

有没有办法改变chrome默认点击的位置。如果可能的话,不必更改我的所有点击操作并手动更改每个操作的位置。

谢谢

编辑:

为了解决这个问题,我检查了输入的点击位置。使用 firefox,我得到的位置是:77.5X 和 30Y。使用 chrome 我得到 264.5X 和 30Y。他们都点击了输入上的不同位置...有没有办法改变这个?

【问题讨论】:

  • 请发布您的代码,如果可能,请提供网页链接。

标签: java selenium selenium-webdriver selenium-chromedriver selenium-firefoxdriver


【解决方案1】:

您可以尝试使用move_by_offset(x,y) 方法并查看chrome是否在指定坐标处点击。在您的 chrome 测试部分下,您可以指定实际点击的坐标。

element = find_element_by_selector(selector)
act = ActionChains(browser)
act.move_to_element(elem).move_by_offset(x_off, y_off).click().perform()

【讨论】:

    【解决方案2】:

    正如你所说,右侧是无法到达的;您可以使用以下代码将其显示出来:

    WebElement element = driver.findElement(locator); ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);

    您可以尝试单击它,然后确保它是可点击的,即显示和启用。

    【讨论】:

      【解决方案3】:

      也许 chrome 的运行速度比 firefox 快,请尝试在预期条件下添加等待。类似:

      WebDriverWait wait = new WebDriverWait(driver, 30);       
      wait.until(ExpectedConditions.visibilityOf(driver.elementToBeClickable(By.id("yourElementId"))));
      

      【讨论】:

      • 我尝试添加等待,但没有任何改变
      猜你喜欢
      • 1970-01-01
      • 2016-06-26
      • 2014-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-04
      • 2012-03-26
      相关资源
      最近更新 更多