当前位置: 首页 > 面试题库 >

使用Selenium网络驱动程序登录Gmail失败。显示找不到密码的元素

欧旻
2023-03-14
问题内容

public static void main(String[] args){
System.setProperty(“webdriver.chrome.driver”,”E:/softwares/chromedriver_win32/chromedriver.exe”);
WebDriver gmail= new ChromeDriver();

    gmail.get("https://www.gmail.co.in"); 
    gmail.findElement(By.id("Email")).sendKeys("abcd");
    gmail.findElement(By.id("next")).click();
    gmail.findElement(By.id("Passwd")).sendKeys("xyz");

问题答案:

尝试将隐式等待时间设置为大约10秒。

gmail.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

或设置一个明确的等待。显式等待是您定义的代码,用于等待特定条件发生后再继续执行代码。您的情况就是密码输入字段的可见性。

WebDriverWait wait = new WebDriverWait(gmail, 10);
WebElement element = wait.until(
    ExpectedConditions.visibilityOfElementLocated(By.id("Passwd")));
gmail.findElement(By.id("Passwd")).sendKeys("xyz");

说明: 硒找不到元素的原因是因为idpassword输入字段的最初是Passwd- hidden。单击“下一步”按钮后,Google首先验证输入的电子邮件地址,然后显示密码输入字段(将ID从更改Passwd-hiddenPasswd)。因此,当密码字段仍然隐藏时(即Google仍在验证电子邮件ID),您的网络驱动程序将开始搜索IDPasswd仍然隐藏的密码输入字段。因此,将引发异常。



 类似资料:
  • 我正在尝试用Selenium编写一个Gmail登录的程序。我可以点击URL,输入用户名并单击“下一步”按钮,但当我重定向到“密码”字段页面时,我无法找到该元素。我使用by.classname尝试了同样的方法。以下是字段的检查代码: 请让我知道解决办法。

  • 我有一个硒服务,必须登录到我的gmail帐户作为第一步。这个功能几周前还在工作,但突然登录开始失败,我在浏览器中看到这个错误,在硒Chrome和Firefox驱动程序中都尝试过- 此错误发生在selenium服务插入电子邮件、密码并单击登录按钮之后。谷歌支持论坛也报告了类似的错误:https://support.google.com/accounts/thread/10916318?hl=en他们

  • 我正试图在eclipse中运行我的第一个webdriver脚本。使用jre1。8.0_1111. 我使用了下面的代码,但它显示了错误。请帮我查一下密码。 错误堆栈 线程“main”java中出现异常。lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver设置。壁虎。驱动系统属性;有关更多信息,请参阅github。com/mozilla/geckodr

  • 我正在尝试使用Selenium web驱动程序。我正在使用asp。net mvc。我已经设置了一个非常基本的测试。我基本上只是想打开浏览器。 但当我运行测试我得到这个错误消息 结果消息: 文件c:\chromedriver.exe\chromedriver.exe不存在。驱动程序可以在http://chromedriver.storage.googleapis.com/index.html下载 我

  • 另外,我希望在执行过程中隐藏'geckodriver.exe窗口‘。 ……余下的代码将继续....