селен вебдрайвер с использованием Firefox для поиска Google / тестирование селена - PullRequest
0 голосов
/ 09 сентября 2018

Я пытаюсь сначала открыть google.com, а затем ввести "тестирование селена".

Я только хотел использовать className для веб-драйвера, использующего eclipse, но я получаю следующую ошибку.

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

Как мне это исправить?

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018
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, а затем напишите «тестирование селена» в поле поиска, а затем выполните поиск по классу.

0 голосов
/ 09 сентября 2018

Это сообщение об ошибке ...

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

... подразумевает, что 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();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...