use*_*328 27 java selenium webdriver
我在Selenium WebDriver中的测试有问题.Click当程序试图单击按钮时,事件并不总是有效.在一次测试中,一切都很好,在其他测试中则不然.
每个测试都从一页开始.首先,用户必须从select组件中选择一个选项,然后用户单击一个按钮.
我想知道为什么有一次一切都好,当我第二次运行测试时它不是?
以下是查找和单击按钮的源代码:
public void clickContinueBtn() {
webElement = driver.findElement(By.xpath("//div[@class='btn magenta_s']/a/span"));
webElement.click();
}
Run Code Online (Sandbox Code Playgroud)
小智 24
我遇到了类似的问题.click方法适用于其他页面,然后在特定页面上根本不起作用.
竞争条件导致了这个问题:
button.click会在禁用的元素上发生.什么都不会发生.一旦我发现这是一个时间问题,我在这里找到了解决方案:如何让Selenium Web Driver等待元素可访问,而不仅仅是存在?
用Ruby解释解决方案:
//This will not return the button until it is enabled.
button = driver.find_element(:xpath, "//button[@id='myButtonId' and not(@disabled)]")
button.click
Run Code Online (Sandbox Code Playgroud)
Are*_*rek 17
您还可以尝试使用基于Javascript的替代方法进行单击.代码可以如下:
WebElement element = driver.findElement(By.id("something"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", element);
Run Code Online (Sandbox Code Playgroud)
小智 5
很多时候它是因为浏览器兼容性而发生的(主要是在 Firefox 上)。所以尝试使用“WebElement.sendKeys(Keys.ENTER);” 代码而不是“webElement.click();”
Vam*_*rni -2
造成这种情况的一个可能原因可能是click()方法无法click在每个元素上分派事件。
因此,您可以click在您尝试单击的元素上显式触发事件。
| 归档时间: |
|
| 查看次数: |
73020 次 |
| 最近记录: |