gpt4 book ai didi

java - Gmail 登录自动化代码卡在电子邮件字段中

转载 作者:行者123 更新时间:2023-12-01 17:54:38 25 4
gpt4 key购买 nike

我正在尝试自动化 Gmail 登录页面。以下步骤将被自动化:第 1 步:访问 Google.com步骤 2. 搜索 Gmail步骤 3. 点击 Gmail第 4 步:验证您是否在 Gmail 网站上步骤 5. 输入用户名步骤 6. 单击“下一步”步骤 7. 输入密码步骤 8. 单击“登录”步骤 9. 验证您是否获得了新页面第10步.单击“撰写”按钮

但是代码卡在电子邮件字段上。光标在电子邮件字段上不断闪烁。

这是代码:

package com.google.mail;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;

public class OpenGmail {

public static void main(String[] args) {

WebDriver driver = new InternetExplorerDriver();
System.setProperty("webdriver.ie.driver", "C:\\Users\\Chandra\\Desktop\\SELENIUM\\IEDriver\\IEDriverServer.exe");
driver.get("www.google.com");
driver.findElement(By.xpath("//*[@id='gbw']/div/div/div[1]/div[1]/a")).click();
driver.findElement(By.xpath("/html/body/nav/div/a[2]")).click();
driver.findElement(By.xpath("//*[@id='initialView']/div[1]"));
System.out.println(driver.findElement(By.id("headingText")));
System.out.println(driver.findElement(By.id("headingSubtext")));
driver.findElement(By.id("identifierId")).sendKeys("xxxxxkmr51");
driver.findElement(By.className("RveJvd snByac")).click();
driver.findElement(By.className("whsOnd zHQkBf")).sendKeys("xxxxxxxxxxxxxx");
driver.findElement(By.className("RveJvd snByac")).click();
System.out.println(driver.getTitle());
driver.findElement(By.xpath("//*[@id=':j3']/div/div")).click();
}
}

这是错误代码:

Exception in thread "main" org.openqa.selenium.NoSuchElementException: Unable to find element with xpath == //*[@id='initialView']/div[2]
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '3.5.3', revision: 'a88d25fe6b', time: '2017-08-29T12:54:15.039Z'
System info: host: 'CXxXXXX-PC', ip: '192.168.1.10', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_144'
Driver info: org.openqa.selenium.ie.InternetExplorerDriver
Capabilities [{acceptInsecureCerts=false, browserVersion=11, se:ieOptions={nativeEvents=true, browserAttachTimeout=0, ie.ensureCleanSession=false, elementScrollBehavior=0, enablePersistentHover=true, ie.browserCommandLineSwitches=, ie.forceCreateProcessApi=false, requireWindowFocus=false, initialBrowserUrl=http://localhost:10057/, ignoreZoomSetting=false, ie.fileUploadDialogTimeout=3000, ignoreProtectedModeSettings=false}, browserName=internet explorer, pageLoadStrategy=normal, unhandledPromptBehavior=dismiss, javascriptEnabled=true, platformName=XP, setWindowRect=true, platform=XP}]
Session ID: 99e8cbc9-b603-49b9-8cd2-de4f4a8da7f5
*** Element info: {Using=xpath, value=//*[@id='initialView']/div[2]}
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:185)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:120)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:164)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:646)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:416)
at org.openqa.selenium.remote.RemoteWebDriver.findElementByXPath(RemoteWebDriver.java:518)
at org.openqa.selenium.By$ByXPath.findElement(By.java:361)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:408)
at com.google.mail.OpenGmail.main(OpenGmail.java:16)

enter image description here

最佳答案

这应该适合你

您可以从 here 直接进入登录页面这将使速度更快并避免不必要的步骤

driver.findElement(By.id("identifierId")).sendKeys("xxxxxxxx");
driver.findElement(By.id("identifierNext")).click();

WebDriverWait wait = new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.presenceOfElementLocated(By.name("password")));
driver.findElement(By.name("password")).sendKeys("xxxxxxxx");
driver.findElement(By.id("passwordNext")).click();

关于java - Gmail 登录自动化代码卡在电子邮件字段中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46257742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com