【问题标题】:Selenium to click this buttonSelenium 单击此按钮
【发布时间】:2021-05-04 02:53:37
【问题描述】:
我正在尝试创建一个测试以选择此按钮
<button type="submit" class="btn btn--stretch btn--primary btn--green t-auth__login--btn">
Create my account</button>
我使用的代码是这样的,但是它不起作用
driver.findElement(By.className("btn btn--stretch btn--primary btn--green t-auth__login--btn")).click();
有人能告诉我编写这个测试的正确方法吗?
如果有帮助的话,有问题的网页是https://www.dunnesstores.com/customer/login
【问题讨论】:
标签:
java
selenium
xpath
css-selectors
webdriverwait
【解决方案1】:
到元素上的click(),您可以使用以下任一Locator Strategies:
-
cssSelector:
driver.findElement(By.cssSelector("button.btn.btn--stretch.btn--primary.btn--green.t-auth__login--btn")).click();
-
xpath:
driver.findElement(By.xpath("//button[@class='btn btn--stretch btn--primary btn--green t-auth__login--btn' and contains(., 'Create my account')]")).click();
理想情况下,click() 需要在元素上诱导 WebDriverWait 为 elementToBeClickable(),您可以使用以下任一 Locator Strategies:
-
cssSelector:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("button.btn.btn--stretch.btn--primary.btn--green.t-auth__login--btn"))).click();
-
xpath:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@class='btn btn--stretch btn--primary btn--green t-auth__login--btn' and contains(., 'Create my account')]"))).click();