2

У меня есть рабочий скрипт для управления сайтом. При работе с webdriver.Chrome(chromedriver.exe) работает как шарм. Но когда я пытаюсь с webdriver.PhantomJS(phantomjs.exe) это не работает.

Более конкретно, что не работает это щелчок () в теге, HTML выглядит следующим образом :

<a href="javascript:;" class="foo" original-title=""><div class="icon_bar"></div></a>

Я получаю этот элемент через self.driver.find_elements_by_class_name('foo') а затем устанавливаю его в переменную , существует множество его. Затем я создаю цикл и вызываю current.click() .

Дело в том, что он на самом деле не щелкает, если я проверяю сайт вручную, ничего не изменилось.

  • Python 3.4.2
  • Селен 2.44.0
  • Windows 8.1

1 ответ1

1

Известно, что PhantomJS не всегда работает должным образом на некоторых сайтах. Вы можете использовать трюки / хаки, такие как send_key(Keys.RETURN) на этом теге. Вы также можете попробовать щелкнуть изображение или другой тег. Также вы можете получить href, а затем вызвать его с помощью driver.get(yourhiref) .

Другое дело, что вам нужен только один из этих элементов? Или нажать на каждый элемент в find_elements_by_class_name('foo')? Потому что, если это первый случай, я бы использовал xpath и css selector:

driver.find_element_by_xpath("//a[@Class='foo']/div")[n].click()

или же

driver.find_element_by_xpath("//a[@Class='foo']")[n].click()

где n - ребенок, которого вы ищете.

PS: я бы пошел на Firefox без головы вместо PhantomJS

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .