Перейти к содержимому

Фотография

ОШИБКА. Selenium, Facebook WebDriver, PHP.

Selenium Facebook WebDriver PHP

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1 sapr71

sapr71

    Новый участник

  • Members
  • Pip
  • 6 сообщений
  • ФИО:Петров Алексей Петрович

Отправлено 07 июня 2019 - 01:43

Добрый день! Пытаюсь разобраться с selenium.

 

Использую: selenium-server-standalone-3.9.1 и Facebook WebDriver.

 

 
При выполнении этого кода, все норм. Открывается в хроме страница гугл.

<?php
namespace Facebook\WebDriver;
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;
require_once('vendor/autoload.php');
$host = 'http://localhost:4444/wd/hub';
$capabilities = DesiredCapabilities::chrome();
$driver = RemoteWebDriver::create($host, $capabilities);
$driver->get('https://www.google.com/');
print 'ok';
?>

 

А вот если добавляем строку : $driver->findElement(WebDriverBy::xpath('*[@id="tsf"]/div[2]/div/div[3]/center/input[2]'))->sendKeys('abc')->click();

<?php
namespace Facebook\WebDriver;
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;
require_once('vendor/autoload.php');
$host = 'http://localhost:4444/wd/hub';
$capabilities = DesiredCapabilities::chrome();
$driver = RemoteWebDriver::create($host, $capabilities);
$driver->get('https://www.google.com/');
$driver->findElement(WebDriverBy::xpath('*[@id="tsf"]/div[2]/div/div[3]/center/input[2]'))->sendKeys('abc')->click();
print 'ok';
?>

 
 
То вылетает ошибка вот такая:

Fatal error: Uncaught Facebook\WebDriver\Exception\NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"*[@id="tsf"]/div[2]/div/div[3]/center/input[2]"} (Session info: chrome=75.0.3770.80) For documentation on this error, please visit: http://seleniumhq.or...ch_element.html Build info: version: '3.9.1', revision: '63f7b50', time: '2018-02-07T22:42:28.403Z' System info: host: 'OBR-PC', ip: '192.168.100.104', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_211' Driver info: driver.version: unknown in C:\xampp\htdocs\vendor\facebook\webdriver\lib\Exception\WebDriverException.php:102 Stack trace: #0 C:\xampp\htdocs\vendor\facebook\webdriver\lib\Remote\HttpCommandExecutor.php(326): Facebook\WebDriver\Exception\WebDriverException::throwException(7, 'no such element...', Array) #1 C:\xampp\htdocs\vendor\facebook\webdriver\lib\Remote\RemoteWebDriver.php(547): Facebook\WebDriver\Remote\HttpCommandExecutor->execute(Object(Facebook\WebD in [/size] C:\xampp\htdocs\vendor\facebook\webdriver\lib\Exception\WebDriverException.php on line [/size]102

 
 
Подскажите как быть, вчера весь день убил на поиск решения, так и не разобрался((
 
 
В качестве руководства использовал вот эту статью: http://kaplunenko.na...ake-screenshot/


  • 0

#2 Freiman

Freiman

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 591 сообщений
  • ФИО:Андрей Адеркин
  • Город:Йошкар-Ола

Отправлено 07 июня 2019 - 07:06

1. Добавьте ожидание (как в той статье)
2. У поля ввода есть более читаемый локатор, например, name="q"
  • 0

#3 sapr71

sapr71

    Новый участник

  • Members
  • Pip
  • 6 сообщений
  • ФИО:Петров Алексей Петрович

Отправлено 07 июня 2019 - 08:21

1. Добавьте ожидание (как в той статье)
2. У поля ввода есть более читаемый локатор, например, name="q"

 

 

 

Добавил ожидание, изменил локатор. Выполняю этот код:

<?php
namespace Facebook\WebDriver;
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;
require_once('vendor/autoload.php');
$host = 'http://localhost:4444/wd/hub';
$capabilities = DesiredCapabilities::chrome();
$driver = RemoteWebDriver::create($host, $capabilities);
$driver->get('https://www.google.com/');
$driver->wait(5, 1000)->until(WebDriverExpectedCondition::titleContains('Google'));
Sleep(5);
$driver->findElement(WebDriverBy::name('q'))->sendKeys('abc')->click();
print 'ok';
?>

Получаю этот ответ:

 

 

Notice: Undefined index: ELEMENT in C:\xampp\htdocs\vendor\facebook\webdriver\lib\Remote\RemoteWebDriver.php on line 190

Fatal error: Uncaught Facebook\WebDriver\Exception\UnknownCommandException: POST /session/82371d1d85f4a6526df4b2c40afd660a/element//value Build info: version: '3.9.1', revision: '63f7b50', time: '2018-02-07T22:42:28.403Z' System info: host: 'OBR-PC', ip: '192.168.100.104', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_211' Driver info: driver.version: unknown in C:\xampp\htdocs\vendor\facebook\webdriver\lib\Exception\WebDriverException.php:106 Stack trace: #0 C:\xampp\htdocs\vendor\facebook\webdriver\lib\Remote\HttpCommandExecutor.php(326): Facebook\WebDriver\Exception\WebDriverException::throwException(9, 'POST /session/8...', Array) #1 C:\xampp\htdocs\vendor\facebook\webdriver\lib\Remote\RemoteWebDriver.php(547): Facebook\WebDriver\Remote\HttpCommandExecutor->execute(Object(Facebook\WebDriver\Remote\WebDriverCommand)) #2 C:\xampp\htdocs\vendor\facebook\webdriver\lib\Remote\RemoteExecuteMethod.php(40): Facebook\WebDriver\Remote\RemoteWebDriver->execute('sendKeysToEleme...', Array) # in C:\xampp\htdocs\vendor\facebook\webdriver\lib\Exception\WebDriverException.php on line 106

 

 

 

 

Если пишу локатор которого нет например (name="qqqq"):

<?php
namespace Facebook\WebDriver;
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;
require_once('vendor/autoload.php');
$host = 'http://localhost:4444/wd/hub';
$capabilities = DesiredCapabilities::chrome();
$driver = RemoteWebDriver::create($host, $capabilities);
$driver->get('https://www.google.com/');
$driver->wait(5, 1000)->until(WebDriverExpectedCondition::titleContains('Google'));
Sleep(5);
$driver->findElement(WebDriverBy::name('qqqq'))->sendKeys('abc')->click();
print 'ok';
?>

То получаю вот такой ответ:

 

 

Fatal error: Uncaught Facebook\WebDriver\Exception\NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"*[name='qqqq']"} (Session info: chrome=75.0.3770.80) For documentation on this error, please visit: http://seleniumhq.or...ch_element.html Build info: version: '3.9.1', revision: '63f7b50', time: '2018-02-07T22:42:28.403Z' System info: host: 'OBR-PC', ip: '192.168.100.104', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_211' Driver info: driver.version: unknown in C:\xampp\htdocs\vendor\facebook\webdriver\lib\Exception\WebDriverException.php:102 Stack trace: #0 C:\xampp\htdocs\vendor\facebook\webdriver\lib\Remote\HttpCommandExecutor.php(326): Facebook\WebDriver\Exception\WebDriverException::throwException(7, 'no such element...', Array) #1 C:\xampp\htdocs\vendor\facebook\webdriver\lib\Remote\RemoteWebDriver.php(547): Facebook\WebDriver\Remote\HttpCommandExecutor->execute(Object(Facebook\WebDriver\Remote\WebDriverCom in  C:\xampp\htdocs\vendor\facebook\webdriver\lib\Exception\WebDriverException.php on line 102

 

 

 

В обоих случаях открывается браузер, переходит на http://google.com и на этом все.


  • 0



Темы с аналогичным тегами Selenium, Facebook, WebDriver, PHP

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных