Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.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 为什么不是';我的点击事件在Selenium中不起作用吗?_Java_Selenium_Testing_Web_Junit - Fatal编程技术网

Java 为什么不是';我的点击事件在Selenium中不起作用吗?

Java 为什么不是';我的点击事件在Selenium中不起作用吗?,java,selenium,testing,web,junit,Java,Selenium,Testing,Web,Junit,当触发clickevent时,我希望它在同一选项卡中重定向/打开新页面。新选项卡将是“/Waiting”,但即使在触发click事件后,它仍保持在同一页面中。虽然通过访问浏览器的本地主机手动执行此操作,但它仍然可以工作。而且,即使在10秒之后,它也不会加载 @Test public void firstPlayerConnection() { try { driver.get(uiPath); WebElement startGame = driver.f

当触发clickevent时,我希望它在同一选项卡中重定向/打开新页面。新选项卡将是“/Waiting”,但即使在触发click事件后,它仍保持在同一页面中。虽然通过访问浏览器的本地主机手动执行此操作,但它仍然可以工作。而且,即使在10秒之后,它也不会加载

@Test
public void firstPlayerConnection() {
    try {
        driver.get(uiPath);
        WebElement startGame = driver.findElement(By.id("startGame"));
        startGame.click();
        WebElement gif = (new WebDriverWait(driver, 10))
                .until(ExpectedConditions.presenceOfElementLocated(By.id("loading")));
        assertEquals("/Waiting", driver.getCurrentUrl());

    } finally {
        driver.quit();
    }
}

如果我没有弄错的话,nosucheElement异常必须出现在startGame.Click()命令上。要避免此异常,必须(显式)等待该元素可单击

WebElement startGame = (new WebDriverWait(driver, 10))
            .until(ExpectedConditions.elementToBeClickable(By.id("startGame")));

显式提供wait,如果它仍然不起作用,则尝试使用submit()代替click()。

是否在
startName中出现任何空指针异常。click()
?是否引发任何Selenium异常,如NoTouchElement、ElementNotVisible等?是。由于页面未加载,因此当代码中存在异常时,如果您的问题是关于,则页面会显示NoTouchElements,始终提供异常的堆栈跟踪,并明确在代码的哪一行发生此异常。这使得快速回答您的问题更加容易。NoTouchElement异常不是因为页面未加载,而是因为在您单击StartName按钮时无法单击它。这很有帮助。这是因为没有隐式/显式等待。在您的例子中,它必须是显式的,因为您的代码中已经有显式等待,混合隐式和显式等待不是一个好主意,因为它会给出不可预测的等待时间。请参阅:。