最可能的情况是,当您尝试查找该元素时,该元素根本不存在。特别是因为您已经尝试了四种不同的选择器。当您尝试查找元素时页面未完全加载时,可能会发生这种情况。您可以实现等待功能,该功能将等待指定的秒数,直到元素存在、可见或可单击。我不确定你的 Selenium 是哪种语言,但这里有一个 Java 版本:
int timeoutSeconds = 30;
By locator = By.id("element-id"); //use any 'By' here
WebDriverWait wait = new WebDriverWait(driver, timeoutSeconds);
wait.until(ExpectedConditions.presenceOfElementLocated(locator));
driver.findElement(locator).click();
或者,您可以等待可点击或可见,使用此行而不是上面示例中的倒数第二行:
wait.until(ExpectedConditions.visibilityOfElementLocated(locator));
wait.until(ExpectedConditions.elementToBeClickable(locator));
如果您使用的是 Java 以外的其他语言,您将必须搜索特定语言的 api,以找到正确的语法。据我所知,Selenium 在不同语言中并不相同,但我希望大多数语言都可以使用它。
即使使用正确的定位器并在硒中等待后,我也无法找到元素