为了账号安全,请及时绑定邮箱和手机立即绑定

org.openqa.selenium.NoSuchElementException

org.openqa.selenium.NoSuchElementException

慕桂英546537 2021-06-21 17:01:53
我使用 Internet Explorer 和 Firefox 使用 Selenium Web 驱动程序在 JAVA 中编写了以下代码。每次我都遇到同样的错误。尝试使用“id”和“xpath”方法,但仍然失败。也尝试添加一些延迟,仍然不起作用。我的 Firefox JAVA 代码:package ieconnector;import java.util.concurrent.TimeUnit;import org.openqa.selenium.By;import org.openqa.selenium.Capabilities;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;import org.openqa.selenium.remote.RemoteWebDriver;public class FireFoxConnector {public static void main(String[] args) {    try{    GetBrowserProperty gbp = new GetBrowserProperty();    System.setProperty("webdriver.ie.driver",gbp.getIeConnection());    System.setProperty("webdriver.gecko.driver","D:\\softwares\\Selenium\\geckodriver-v0.21.0-win64\\geckodriver.exe");    WebDriver wb = new FirefoxDriver();    Capabilities caps = ((RemoteWebDriver) wb).getCapabilities();    System.out.println("Caps is "+caps);    wb.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);    //wb.navigate().to("https://somewebsite.com:22222/SSO/ui/SSOLogin.jsp");    wb.get("https://somewebsite.com:22222/SSO/ui/SSOLogin.jsp");    wb.manage().deleteAllCookies();    wb.manage().window().maximize();    //wb.findElement(By.id("usertxt")).sendKeys(("user").toUpperCase());    //wb.findElement(By.className("passtxt")).sendKeys("password");    //WebDriverWait wait = new WebDriverWait(wb,10);    //WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("usertxt")));    wb.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);    //wb.findElement(By.id("usertxt")).sendKeys("USER");    wb.findElement(By.xpath("//*[@id='usertxt']")).sendKeys("USER");    System.out.println("Testing is successful");} catch (Exception e) {    e.printStackTrace();}}}以下是我在 IE/Firefox 中的开发人员工具中的 HTML 代码的屏幕截图。
查看完整描述

1 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

根据您共享的用于定位用户 ID字段的 HTML,您可以使用以下解决方案:

  • cssSelector

    wb.findElement(By.cssSelector("input.txtbox#usertxt")).sendKeys("USER");
  • xpath

    wb.findElement(By.xpath("//input[@class='txtbox' and @id='usertxt']")).sendKeys("USER");



查看完整回答
反对 回复 2021-06-23
  • 1 回答
  • 0 关注
  • 160 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信