硒点击firefox和chrome上的位置

时间:2017-05-16 20:22:59

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

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

我用firefox和chrome测试它。在Firefox下它完美运行,文本框接收点击和测试连续。

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

有没有办法在默认情况下更改chrome尝试点击的位置。如果可能的话,无需将所有点击更改为操作并手动更改每个操作的位置。

谢谢

编辑:

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

3 个答案:

答案 0 :(得分:1)

您可以尝试使用implicit class MonoidPair[A, B](implicit A: Monoid[A], B: Monoid[B]) extends Monoid[Pair[A, B]] { ... //same body as before } 方法查看指定坐标处的Chrome是否点击。在Chrome测试部分下,您可以指定实际点击的坐标。

With Sheets("Sheet4")

    Lrow1 = .Cells(.Rows.Count, "J").End(xlUp).Row
    Do While .Cells(Lrow1, "J").Value=0
        Lrow1 = Lrow1 - 1
    Loop

End With

答案 1 :(得分:1)

正如你所说,右边是无法到达的;您可以使用以下代码将其显示在视图中:

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

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

答案 2 :(得分:0)

也许chrome比firefox工作得更快,尝试在预期条件下添加等待。类似的东西:

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