我正在学习Selenium Webdriver。我试图登录" Quora"通过谷歌。但在电子邮件输入部分,代码无法正常工作。我无法弄清问题是什么。请帮忙。以下是我的代码:
import org.openqa.*;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class Demo2 {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "C:\\chromedriver.exe");
WebDriver driver=new ChromeDriver();
String url="https://quora.com";
driver.get(url);
WebElement ele1=driver.findElement(By.className("google_button_text"));
ele1.click();
WebElement email1=driver.findElement(By.name("identifier"));
email1.sendKeys("fggffgfd");
WebElement next1=driver.findElement(By.className("RveJvd snByac"));
next1.click();
WebElement password=driver.findElement(By.className("whsOnd zHQkBf"));
password.click();
password.sendKeys("Sffgdffdf3");
WebElement next2=driver.findElement(By.className("RveJvd snByac"));
next2.click();
}
}
答案 0 :(得分:0)
使用Id而不是Name选择元素。你可以使用
By.id("identifierId")
而不是
By.name("identifier")
尝试使用WindowHandle
,如下面的代码snap:
ele1.click();
String mainWindowHandler = driver.getWindowHandle();
for(String winHandle : driver.getWindowHandles()){
driver.switchTo().window(winHandle);
}
WebElement email1=driver.findElement(By.id("identifierId"));
它会在电子邮件字段中写入文字。然后,您需要捕获下一步按钮的精确选择器,例如By.cssSelector("#identifierNext > content > span")
。通过这种方式,尝试找出{{1>} 密码字段和下一步按钮。
在代码结束时,您需要添加以下代码行来关闭第二个窗口并切换到主窗口:
cssSelector
希望它可以解决您的问题。