我正在使用带有java的selenium webdriver,并且有一个输入类型的文本,他的身体的一半在浮动div下。所以左半边是可以到达的,但不是右边的。
我用firefox和chrome测试它。在Firefox下它完美运行,文本框接收点击和测试连续。
但是在chrome下,我收到此错误消息 元素在点(490,327)处不可点击。其他元素会收到点击:...
有没有办法在默认情况下更改chrome尝试点击的位置。如果可能的话,无需将所有点击更改为操作并手动更改每个操作的位置。
谢谢
编辑:
试图解决这个问题,我检查点击输入的位置。使用firefox,我得到的位置:77.5X和30Y。使用chrome我得到264.5X和30Y。他们都点击输入上的其他位置......有没有办法改变这个?
答案 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"))));