java - 如何通过 Selenium 单击模式框中的 HTML 元素?

标签 java selenium xpath css-selectors webdriverwait

我正在自动化一些需要注销的网站。我在这段代码中遇到了困难:

WebDriverWait wait = new WebDriverWait(d, 10);
WebElement Category_Body = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("user logout")));
Category_Body.click();
d.findElement(By.id("logout_user")).click();
Thread.sleep(1000);

HTML:

<a class="user logout" title="Sign out" data-target="#confirm_popup" data-toggle="modal"></a>

错误:

org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"id","selector":"user logout"}

最佳答案

尝试以下代码:

WebDriverWait wait = new WebDriverWait(d, 10);
WebElement Category_Body = wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(".user.logout")));
Category_Body.click();

PS:您也可以使用 ExpectedCondition.elementToBeClickable 来完成此操作。

希望对你有帮助!

关于java - 如何通过 Selenium 单击模式框中的 HTML 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52380180/

相关文章:

java - selenium webdriver java 下拉框

python - Selenium WebDriver 等待组合 ExpectedConditions(AND、OR、NOT 运算符)

xslt - 什么是node()的显式版本

xml - XPath 中//*[*] 和//*[.] 有什么区别?

java - 如何处理 bean 需要服务器调用作为其初始化的一部分的情况

java - Web 应用程序中的 Spring 线程

java - Selenium 3.3.1 : NoDefClassFound (com. google.common.base.Function)

java - NoSuchElementException - junit 测试错误

xml - XSLT - 需要复制多个命名空间

Java - Logback 和 Spring Boot - 仅写入控制台而不写入文件