编程语言
首页 > 编程语言> > java-为什么我的测试会引发Exception-无法在webdriver中定位元素?

java-为什么我的测试会引发Exception-无法在webdriver中定位元素?

作者:互联网

package testproject;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.*;
  public class mytestclass {
    public static void main(String[] args) {
       WebDriver Driver = new FirefoxDriver();
        Driver.get("https://www.gmail.com/");
         WebElement wb= Driver.findElement(By.name("Email"));
         wb.sendKeys("sweta");
         WebElement wb1= Driver.findElement(By.name("Passwd"));
         wb1.sendKeys("123456");
         WebElement wb2= Driver.findElement(By.id("signIn"));
         wb2.click();
         WebElement wb3= Driver.findElement(By.xpath(".//*[@id='gb']/div[1]/div[1]/div[2]/div[5]/div[1]/a"));
         wb3.click();
         WebElement wb4= Driver.findElement(By.id("gb_71"));
         wb4.click();
   }
}

当我执行此代码时,一切正常,直到我希望单击登录按钮为止.我越来越例外,说
线程“主”中的异常org.openqa.selenium.NoSuchElementException:无法找到元素:{“ method”:“ xpath”,“ selector”:“ .//*[@ id =’gb’] / div [1] / div [1] / div [2] / div [5] / div [1] / a“},但是当我尝试使用fierbug定位它时,它的工作正常.
在上述代码中,我更改了电子邮件ID和密码以确保电子邮件安全.

我正面临一个已经在stakwave上发布的程序的问题,因此,如果可以的话,请查看此链接-webdriver is not able to click on a hyperlink in firefox

解决方法:

您确定登录后页面已完全加载吗?

您是否为网络驱动程序设置了超时时间? (它必须等待元素多长时间).可能在完全加载之前会读取您的html.

Webdriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS);

要快速找出这是否是问题,请在执行wb2.click()之后执行Thread.sleep(8000);

标签:java,firefox,selenium,selenium-webdriver,automated-tests
来源: https://codeday.me/bug/20191013/1907856.html