selenium webdriver使用firefox进行谷歌搜索/硒测试

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

我想先打开google.com然后输入“selenium testing”。

我只想使用eclipse使用className webdriver但我收到以下错误。

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();
    }
}

我该如何解决?

selenium google-chrome selenium-webdriver webdriver selenium-chromedriver
2个回答
1
投票

此错误消息...

org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"class name","selector":"Tg7LZd"}

...暗示GeckoDriver无法根据您使用的Locator Strategy找到任何元素。

您的主要问题是您使用的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();
    }
}

0
投票
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(); 

这是工作代码

。这些将打开谷歌浏览器,然后在搜索框中写“selenium testing”,然后使用该类搜索它。

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