Selenium Webdriver:org.openqa.selenium.NoSuchElementException

时间:2016-02-03 05:55:44

标签: java selenium selenium-webdriver

我收到如下错误: -

  

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")));

1 个答案:

答案 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");     
      }

希望它会对你有所帮助:)。