如何使用Selenium和Java在自动化测试中点击按钮?

问题描述 投票:0回答:1

我想用Selenium自动化测试,我想用xpath点击一个按钮。这就是我正在做的事情。

WebElement LogInButton = driver.findElement(By.xpath("/login"));
LogInButton.click();

但我得到一个错误信息说:

Exception in thread "main" org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"/login"}

我对该按钮的唯一信息是:

<a href="/login">Login</a>

以及它重定向到的URL.我到底做错了什么?正确的引用这个按钮的方式是什么?任何帮助,请让我知道。谢谢你的帮助

java selenium xpath css-selectors linktext
1个回答
0
投票

要调用 click() 你可以在元素上使用以下任何一种方法。定位策略:

  • 使用 链接文本:

    driver.findElement(By.linkText("Login")).click();
    
  • 使用 cssSelector:

    driver.findElement(By.cssSelector("a[href='/login']")).click();
    
  • 使用 xpath:

    driver.findElement(By.xpath("//a[@href='/login' and text()='Login']")).click();
    

最佳做法

由于你是调用 click() 理想情况下,你需要诱导 WebDriverWait 对于 elementToBeClickable() 您可以使用以下任何一种方式 定位策略:

  • 使用 链接文本:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.linkText("Login"))).click();
    
  • 使用 cssSelector:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("a[href='/login']"))).click();
    
  • 使用 xpath:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//a[@href='/login' and text()='Login']"))).click();
    

参考资料

你可以在以下几个相关的讨论中找到。

© www.soinside.com 2019 - 2024. All rights reserved.