Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
硒+;Java测试充满了span元素。解决不可单击元素问题的最佳方法_Java_Selenium - Fatal编程技术网

硒+;Java测试充满了span元素。解决不可单击元素问题的最佳方法

硒+;Java测试充满了span元素。解决不可单击元素问题的最佳方法,java,selenium,Java,Selenium,在我的公司里,我将更深入地进行回归测试。我们在span元素上设置了很多定位器,并与click()结合使用,这会导致异常“not clickable element”。单击span有时有效,但并不总是有效。我正在寻找解决我们问题的最佳方法。 1.将每个跨度元素更改为按钮。 2.将测试id添加到span或父(div)元素 3.添加“actions.moveToElement”,但它将在许多地方实现 我的观点对你有意义吗?您有什么建议?作为一个选项,您可以使用JavaScript WebDriverW

在我的公司里,我将更深入地进行回归测试。我们在span元素上设置了很多定位器,并与click()结合使用,这会导致异常“not clickable element”。单击span有时有效,但并不总是有效。我正在寻找解决我们问题的最佳方法。 1.将每个跨度元素更改为按钮。 2.将测试id添加到span或父(div)元素 3.添加“actions.moveToElement”,但它将在许多地方实现


我的观点对你有意义吗?您有什么建议?

作为一个选项,您可以使用JavaScript

WebDriverWait wait = new WebDriverWait(driver, 20);
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].click()", wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(""))));
您可以将
executeScript
放入方法并使用它,下面是通用单击的示例:

public void click(WebDriver driver, WebElement element, boolean withJS){
    if (withJS){
        ((JavascriptExecutor) driver).executeScript("arguments[0].click()", element);
    } else {
        element.click();
    }
}

作为一个选项,您可以使用JavaScript

WebDriverWait wait = new WebDriverWait(driver, 20);
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].click()", wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(""))));
您可以将
executeScript
放入方法并使用它,下面是通用单击的示例:

public void click(WebDriver driver, WebElement element, boolean withJS){
    if (withJS){
        ((JavascriptExecutor) driver).executeScript("arguments[0].click()", element);
    } else {
        element.click();
    }
}