Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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-Web驱动程序等待_Java_Selenium - Fatal编程技术网

Java Selenium-Web驱动程序等待

Java Selenium-Web驱动程序等待,java,selenium,Java,Selenium,以下是我通常编写的查找name=“email”元素的方法 如果有如下所示的元素模态体呢 WebElement modalBody = enrollForm.findElement(By .className("modal-body")); 现在,如果我要在另一个WebElement中找到一个特定的WebElement,比如 WebElement a = driver.findElement(By.id("KeepSmiling"); WebElement b = a.findE

以下是我通常编写的查找name=“email”元素的方法

如果有如下所示的元素模态体呢

WebElement modalBody = enrollForm.findElement(By
        .className("modal-body"));
现在,如果我要在另一个WebElement中找到一个特定的WebElement,比如

WebElement a = driver.findElement(By.id("KeepSmiling");
WebElement b = a.findElement(By.className("ChocolatesMakeMeSizzle");
这里
b
a
中的一个元素。因为还有很多其他div使用className->chocolatesmakesizzle

我也希望这样做,但是使用
WebDriverWait
。我使用
Thread.sleep(xx)
来避免这个问题,但这是一个非常糟糕的方法

以下是我尝试过的(但我意识到我试图减慢一个毫无意义的Web元素的速度)

如何做到这一点有什么建议吗

坦白:老实说,我是在避免这种方法,而是使用Thread.sleep(xx)

我能够使用xpath并找到方法,但我希望我的问题能得到答案!:)

如果DOM中存在该元素,则模态应该没有问题。 我正在测试一个大系统,所有的形式都是模态的,我们在使用预期条件查找元素时没有任何问题

另外,为了查找,可以使用XPATH

下面是一个例子: //input[包含(@class,'name')]/following::input[@type='Button']

如果DOM中存在该元素,则模态应该没有问题。 我正在测试一个大系统,所有的形式都是模态的,我们在使用预期条件查找元素时没有任何问题

另外,为了查找,可以使用XPATH

下面是一个例子: //input[包含(@class,'name')]/following::input[@type='Button']

如果DOM中存在该元素,则模态应该没有问题。 我正在测试一个大系统,所有的形式都是模态的,我们在使用预期条件查找元素时没有任何问题

另外,为了查找,可以使用XPATH

下面是一个例子: //input[包含(@class,'name')]/following::input[@type='Button']

如果DOM中存在该元素,则模态应该没有问题。 我正在测试一个大系统,所有的形式都是模态的,我们在使用预期条件查找元素时没有任何问题

另外,为了查找,可以使用XPATH

下面是一个例子:

//input[contains(@class='name')]/following::input[@type='Button']

谢谢。如果ID不起作用,我可能会使用xpath。老实说,我不太擅长XPath。我最终肯定能找到它,但我希望使用modalBody…不知何故…id和类名让我感觉像是在一个安全的泡泡中。你能发布该modal的HTML吗?在xpath中,您可以使用一些函数,如contains、text(),以及导航函数,如/following等。这很有帮助!:)不用再担心了,我坐下来想了想尽管如此,我真的希望我能用我想要的方式使用它:(谢谢。如果id不起作用,我可能会使用xpath。老实说,我不太擅长w/xpath。我最终肯定能找到它,但我希望使用modalBody…不知何故…id和类名让我感到安全。你能发布该模式的HTML吗?在xpath中,你可以使用一些函数,如contains、text(),以及导航功能,如/以下功能等。这很有帮助!:)不用担心,我坐下来想了想!:尽管如此,我真的希望我能以我想要的方式使用它:(谢谢。如果id不起作用,我可能会使用xpath。老实说,我不太擅长w/xpath。我最终肯定能找到它,但我希望使用modalBody…不知何故…id和类名让我感到安全。你能发布该模式的HTML吗?在xpath中,你可以使用一些函数,如contains、text(),以及导航功能,如/以下功能等。这很有帮助!:)不用担心,我坐下来想了想!:尽管如此,我真的希望我能以我想要的方式使用它:(谢谢。如果id不起作用,我可能会使用xpath。老实说,我不太擅长w/xpath。我最终肯定能找到它,但我希望使用modalBody…不知何故…id和类名让我感到安全。你能发布该模式的HTML吗?在xpath中,你可以使用一些函数,如contains、text(),以及导航功能,如/以下功能等。这很有帮助!:)不用担心,我坐下来想了想!:尽管如此,我真的希望我能以我想要的方式使用它:(我们可以用你的问题中的一些html来帮助xpath。我们可以用你的问题中的一些html来帮助xpath。我们可以用你的问题中的一些html来帮助xpath。我们可以用你的问题中的一些html来帮助xpath。
WebElement a = driver.findElement(By.id("KeepSmiling");
WebElement b = a.findElement(By.className("ChocolatesMakeMeSizzle");
WebElement emailInput = (new WebDriverWait(modalBody, 10))
        .until(ExpectedConditions.presenceOfElementLocated(By
                .name("email")));
WebElement emailInput = (new WebDriverWait(driver, 10))
       .until(ExpectedConditions.elementToBeClickable(By
            .xpath("some_complex_xpath")));