gpt4 book ai didi

java - 在 selenium 中自定义 Css 选择器时要选择的属性

转载 作者:行者123 更新时间:2023-12-01 17:09:29 25 4
gpt4 key购买 nike

我正在尝试登录网站并尝试单击登录按钮。该按钮的 HTML 节点是

<button data-purpose="header-login" type="button" class="btn btn-quaternary">Log In</button>

我的代码是

WebDriver driver = new FirefoxDriver();

driver.get("https://www.udemy.com");

WebDriverWait wait = new WebDriverWait(driver,30);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("button[type='button']"))).click();
O/P- `Exception in thread "main" org.openqa.selenium.TimeoutException: Expected condition failed: waiting for visibility of element located by By.cssSelector: button[type='button'] (tried for 30 second(s) with 500 milliseconds interval)

但是,当我在代码中替换 cssSelector("button[type='button']")cssSelector("button[class='btn btn-quaternary']") ,它工作得很好。

类型是否是错误的属性选择?

最佳答案

您的代码是正确的,但您使用的 CSS 选择器指向多个元素,如下所示:

By.cssSelector("button[type='button']"))

enter image description here

2) 但是,当您使用以下 cssSelector("button[class='btn btn-quaternary']") 时,它会指向您要定位的特定登录按钮。

enter image description here

还有一种使用 XPath 的替代方法(不推荐,因为位置可以更改):

(//button[@type='button'])[4] 

关于java - 在 selenium 中自定义 Css 选择器时要选择的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61438843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com