使用 XPATH 单击按钮时如何使用 java 和 selenium 修复 "Method Call Expected"?

How to fix "Method Call Expected" using java and selenium when using XPATH to click a button?

我对 selenium 的所有东西都很陌生,我现在很难弄清楚如何使用 XPATH 单击按钮(技术上是 link)来搜索正确的按钮。

我的导入是这些:

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.WebDriverWait;

我的代码在这里

    System.setProperty("webdriver.chrome.driver", "C:\selenium-java-2.35.0\chromedriver_win32_2.2\chromedriver.exe");

    WebDriver driver = new ChromeDriver();
    driver.get("https://LINK_OF_THE_WEBSITE");
    WebElement button = WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfElementLocated(By.ByXPath("//a[@class='btn' @href'LINK_OF_THE_BUTTON']"))).click();

    driver.close();

目前我的 IDE 中显示了 2 个错误,它们都告诉我“需要方法调用”。其中一个在 WebDriverWait(driver, 10) 上,另一个在 By.ByXPath("...")

我查看了这两个对象的 JavaDocs,我觉得我调用它们是正确的,但我仍然遇到这些错误。

我不确定我使用的方法是否是解决此问题的最佳方法。该按钮没有 ID,只有一个 class 和一个 href 值,它是一个带有文本“Sign In”的登录按钮。感谢您的帮助!

要单击 link/button,您需要使用正确的定位符来识别元素。

下面使用xpath

//*[@class='btn' and text()='Sign In'] 

理想情况下,您的代码应该像

WebElement button=new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@class='btn' and text()='Sign In']")));
button.click();