Я пытался создать веб-сканер для компании, в которой я работаю, чтобы использовать ее в сочетании с расширением норки.В прошлом я тоже делал нечто подобное, но разница в том, что теперь страница, которую я пытаюсь пролистать, встроена в angularjs.
Это, похоже, вызывает проблему в моем селекторе xpath, который не может найти элементыЯ запрашиваю в DOM.
Чтобы убедиться, что у меня есть правильный xpath и дважды проверьте его, я также использую Xpath Helper
из хрома (расширение).
Моя функция, которую я пытаюсь использоватьэто:
/**
* @Then I login
*/
public function login()
{
$page = $this->getSession()->getPage();
$username = $page->find('xpath', "//*[@id='inputEmail']/self::INPUT");
$password = $page->find('xpath', "//*[@id='inputPassword']/self::INPUT");
if ($username == null && $password == null) {
echo "nothing found";
}
else{
$username->setValue('username');
$password->setValue('password');
}
}
В моем файле .feature
я могу получить доступ к странице входа в систему и проверить, что я там, "увидев" какой-то текст в DOM, чтобы убедиться, что он работает, но когда я пытаюсьчтобы заполнить значения в полях выше, я получаю сообщение об ошибке.
Я предполагаю, что это угловая проблема с тем, как он создает элементы DOM, из-за чего мой xpath не может найти нужные мне поля, но я могу 'Не думаю, что обойти это.
Конечно, использование JS-фреймворка, такого как Protractor
, может быть решением, но я бы хотел остаться в php, так как он легче обслуживается командой, с которой я работаю.
Любые идеибудет более чем приветствоваться.