Получить DOM интерфейс по css селектору

Обсуждение новых возможности программы, которые в будущем хотелось бы видеть в ней
Ответить
Аватара пользователя
k907
Сообщения: 225
Зарегистрирован: 21 май 2014, 20:32

Получить DOM интерфейс по css селектору

Сообщение k907 » 06 фев 2020, 10:34

Добавите, пожалуйста, возможность получить DOM интерфейс по css селектору (по аналогии с get_by_xpath)
Очень не хватает.


Или как то по другому можно получить DOM интерфейс через сss селектор?

Аватара пользователя
Support
Site Admin
Сообщения: 825
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: Получить DOM интерфейс по css селектору

Сообщение Support » 06 фев 2020, 14:51

А не могли бы вы уточнить на конкретном примере что именно требуется?

вот есть такие функции:

$element->get_by_query_selector

// 1 
echo "1. Перейдем на полигон : ";
$browser->set_wait_params(10,1);
echo $browser->navigate("http://www.bigfozzy.com")."<br>";

// 2 
echo "2. Получить х и y у ссылки c заданным селектором и кликнем по ней : ";
$obj=$element->get_by_query_selector(".menu_lnk");
echo $obj->get_x()." ".$obj->get_y()." ";
echo $obj->click()."<br>";


и $element->get_by_js
// 1 
echo "1. Перейдем на полигон : ";
$browser->set_wait_params(10,1);
echo $browser->navigate("http://www.bigfozzy.com")."<br>";

// 2 
echo "2. Получить элемент по JS функции (имя функции долно быть JS_XHE_GetElement ) : ";
$obj=$element->get_by_js("function JS_XHE_GetElement(){var elm=document.querySelector('.menu_lnk'); return elm;}");
echo $obj->get_x()." ".$obj->get_y();


Аватара пользователя
k907
Сообщения: 225
Зарегистрирован: 21 май 2014, 20:32

Re: Получить DOM интерфейс по css селектору

Сообщение k907 » 06 фев 2020, 16:19

Support писал(а):
06 фев 2020, 14:51

вот есть такие функции:

$element->get_by_query_selector
$element->get_by_js
Спасибо. Это именно то что нужно.

Заметил такую особенность:
$browser->navigate("http://humanemulator.blogspot.com/");
$browser->wait_for(60,1);

// работает 
$obj = $element->get_by_query_selector("input[title='search']");
echo $obj->get_x()." | ".$obj->get_y()."<br>";

// не работает, хотя через консоль находит нужный input
$obj = $element->get_by_query_selector('input[title="search"]');
echo $obj->get_x()." | ".$obj->get_y()."<br>";

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 2425
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Получить DOM интерфейс по css селектору

Сообщение bigfozzy » 06 фев 2020, 16:24

да, нужно экранировать " в этом случае : \"

// не работает, хотя через консоль находит нужный input
$obj = $element->get_by_query_selector('input[title=\"search\"]');
echo $obj->get_x()." | ".$obj->get_y()."<br>";

Аватара пользователя
k907
Сообщения: 225
Зарегистрирован: 21 май 2014, 20:32

Re: Получить DOM интерфейс по css селектору

Сообщение k907 » 06 фев 2020, 16:26

Спасибо

Ответить