Webdriver не нажимает на поиск Google - PullRequest
0 голосов
/ 27 июня 2018

Это очень простой скрипт, но мне нужна помощь.

Веб-драйвер нажимает кнопку поиска в Google, если нет предложенных вариантов для набираемого текста (например, для macintosh). Но когда появляются предложения, как мне все-таки заставить веб-драйвер нажать кнопку поиска Google. Мой код ниже:

package newProj;

import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.remote.RemoteWebDriver;


public class Google {


public static void main(String[] args) throws InterruptedException {



    System.setProperty("webdriver.chrome.driver", "./drivers/chromedriver.exe");

    RemoteWebDriver driver = new ChromeDriver();

    driver.get("http://www.google.com");
    driver.manage().window().maximize();
    driver.findElementById("lst-ib").sendKeys("macintosh");

    WebElement gs = driver.findElementByXPath("//input[@value = 'Google Search']");

    gs.click();
    System.out.println("Search Done");

    driver.close();
}

}

но получаю ошибку ниже. Просьба помочь

Запуск ChromeDriver 2.40.565498 (ea082db3280dd6843ebfb08a625e3eb905c4f5ab) на порту 3288 Только локальный Соединения разрешены. 27 июня 2018 12:14:37 org.openqa.selenium.remote.ProtocolHandshake createSession INFO: Обнаруженный диалект: OSS true Исключение в теме "Основной" org.openqa.selenium.WebDriverException: неизвестная ошибка: элемент недоступен для щелчка в точке (598, 411). Другой элемент получит щелчок: ...
(Информация о сеансе: chrome = 67.0.3396.87) (Информация о драйвере: chromedriver = 2.40.565498 (ea082db3280dd6843ebfb08a625e3eb905c4f5ab), платформа = Windows NT 10.0.15063 x86_64) (ПРЕДУПРЕЖДЕНИЕ: сервер не предоставил никакой информации о трассировке стека). Длительность команды или время ожидания: 0 миллисекунд. Информация о сборке: версия: «3.12.0», редакция: «7c6e0b3», время: '2018-05-08T15: 15: 03.216Z' Системная информация: хост: 'HDC0007030', ip: «10 .50.90.19», os.name: «Windows 10», os.arch: «amd64», os.version: '10 .0 ', java.version:' 1.8.0_73 'Информация о драйвере: org.openqa.selenium.chrome.ChromeDriver Возможности {acceptInsecureCerts: false, acceptSslCerts: false, applicationCacheEnabled: false, browserConnectionEnabled: false, browserName: chrome, chrome: {chromedriverVersion: 2.40.565498 (ea082db3280dd6 ..., userDataDir: C: \ Users \ CSS116 ~ 1 \ AppData \ L ...}, cssSelectorsEnabled: true, databaseEnabled: false, handlesAlerts: true, hasTouchScreen: false, javascriptEnabled: true, locationContextEnabled: true, mobileEmulationEnabled: false, nativeEvents: true, networkConnectionEnabled: false, pageLoadStrategy: обычный, платформа: XP, имя платформы: XP, вращающийся: ложь, setWindowRect: true, takeHeapSnapshot: true, takeScreenshot: true, непредсказуемое поведение:, необработанное, быстрое поведение:, версия: 67.0.3396.87, webStorageEnabled: true} Идентификатор сеанса: f4700c020ed7f67bd9e46a3c70fb4b02 в sun.reflect.NativeConstructorAccessorImpl.newInstance0 (собственный метод) в sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:62) в sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:45) в java.lang.reflect.Constructor.newInstance (Constructor.java:422) в org.openqa.selenium.remote.ErrorHandler.createThrowable (ErrorHandler.java:214) в org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed (ErrorHandler.java:166) в org.openqa.selenium.remote.http.JsonHttpResponseCodec.reconstructValue (JsonHttpResponseCodec.java:40) в org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode (AbstractHttpResponseCodec.java:80) в org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode (AbstractHttpResponseCodec.java:44) в org.openqa.selenium.remote.HttpCommandExecutor.execute (HttpCommandExecutor.java:158) в org.openqa.selenium.remote.service.DriverCommandExecutor.execute (DriverCommandExecutor.java:83) в org.openqa.selenium.remote.RemoteWebDriver.execute (RemoteWebDriver.java:543) в org.openqa.selenium.remote.RemoteWebElement.execute (RemoteWebElement.java:276) в org.openqa.selenium.remote.RemoteWebElement.click (RemoteWebElement.java:83) at newProj.Google.main (Google.java:33)

1 Ответ

0 голосов
/ 27 июня 2018

driver.navigate () к. ( "HTTP: \ google.com");

    driver.findElement(By.cssSelector("input[title='Search']")).sendKeys("sele");

    List<WebElement> list=driver.findElements(By.xpath("//*[@class='sbsb_b']/li[*]"));

    Iterator<WebElement> itr=list.listIterator();
    while(itr.hasNext()){

        WebElement element=itr.next();

        if(element.getText().equalsIgnoreCase("selenium webdriver")){

            element.click();
            break;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...