selenium webdriver中丢失或无效的'entry.level'“错误[重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我正在学习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();          
    }
}
java selenium selenium-webdriver
1个回答
0
投票

使用Id而不是Name选择元素。您可以使用

By.id("identifierId")

代替

By.name("identifier")

尝试使用WindowHandle,如下面的代码快照:

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")这样的Next按钮的精确选择器。通过这种方式,尝试找出密码字段和下一步按钮的cssSelector

在代码结束时,您需要添加以下代码行来关闭第二个窗口并切换到主窗口:

driver.close();
driver.switchTo().window(mainWindowHandler);

希望它可以解决您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.