我正在尝试先打开google.com,然后输入"selenium testing“。
我只想在eclipse中使用webdriver的className,但是我得到了以下错误。
Exception in thread "main" 
   org.openqa.selenium.NoSuchElementException: Unable to locate element: 
   {"method":"class name","selector":"Tg7LZd"}
   Command duration or timeout: 37 milliseconds下面是我的代码:
package coreJava;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Training1 {
    public static void main(String[] args) {
        WebDriver driver = new FirefoxDriver();
        driver.get("http://www.google.com");
        driver.findElement(By.className("gLFyf")).sendKeys("selenium testing");     
        driver.findElement(By.className("Tg7LZd")).click();
    }
}我该如何解决这个问题?
发布于 2018-09-10 03:14:15
此错误消息...
org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"class name","selector":"Tg7LZd"}...implies根据您使用的Locator Strategy,GeckoDriver无法找到任何元素。
你的主要问题是你使用的classNames是基于JavaScript的,并且是动态生成的,这在它们生成之前我们无法猜测。作为替代方案,您可以使用以下解决方案:
package coreJava;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Training1 {
    public static void main(String[] args) {
        WebDriver driver = new FirefoxDriver();
        driver.get("http://www.google.com");
        WebElement myElement = driver.findElement(By.name("q"));  
        myElement.sendKeys("selenium testing");
        myElement.submit();
    }
}发布于 2018-09-10 14:29:12
System.setProperty("webdriver.gecko.driver", "geckodriver");
FirefoxDriver driver = new FirefoxDriver();
driver.get("https://google.com");
Thread.sleep(3);
driver.findElement(By.className("gsfi")).sendKeys("selenium testing");
Thread.sleep(3);
driver.findElement(By.className("sbqs_c")).click();
Thread.sleep(3);
driver.close(); 这是工作代码
。这将打开google chrome,然后在搜索框中写入"selenium testing“,然后使用类进行搜索。
https://stackoverflow.com/questions/52247099
复制相似问题