我收到如下错误: -
org.openqa.selenium.NoSuchElementException:无法找到元素 使用xpath == // * [@ id ='userId']
这是我的HTML代码:
<input type="text" name="_ssoUser" id="userId" class="inforTextbox required" data-localizedtext="placeholder:UserID" aria-required="true" placeholder="User Name">
我已经尝试了以下所有选项,没有任何工作。
WebDriverWait wait = new WebDriverWait(driver, 30);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id='userId']")));
WebElement userid = driver.findElement(By.name("_ssoUser"));
WebElement userid =driver.findElement(By.xpath("//*[@id='userId']"));
WebElement userid = driver.findElement(By.id("userId"));
driver.switchTo().frame(1);
driver.switchTo().frame(driver.findElement(By.name("_ssoUser")));
答案 0 :(得分:0)
您可以使用xpath以下
//input[@id='userId' and @name='_ssoUser' and @placeholder='User Name']
如果您的上述元素在帧之后出现,那么您需要先切换然后查找元素
另一件事是你也可以逐帧切换到xpath,name或frame id。也试试这个
您可以在HTML DOM中检查元素存在与否的第一个天气,以防止出现错误/错误的脚本。如下: -
if (driver.findElements("YOUR LOCATOR").size() != 0) {
driver.findElement(YOUR LOCATOR).click();
System.out.println("element exists");
}
else{
System.out.println("element is not exists");
}
希望它会对你有所帮助:)。