Selênio com PhantomJS, clique () não está funcionando

2

Eu tenho um script de trabalho para manipular um site. Ao correr com webdriver.Chrome(chromedriver.exe) Ele funciona como um encanto. Mas quando eu tento com webdriver.PhantomJS(phantomjs.exe) não funciona

Mais especificamente, o que não funciona é o click () em um a tag, o HTML é o seguinte:

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

Eu recebo este elemento via self.driver.find_elements_by_class_name('foo') e depois configurá-lo para um var, há toneladas dele. Então eu crio um loop e chamo current.click().

A coisa é que não está realmente clicando, se eu verificar o site manualmente nada mudou.

  • Python 3.4.2
  • Selênio 2.44.0
  • Windows 8.1
JChris
fonte
Eu tenho o mesmo problema com o Java: - /
Betlista
Eu também descobri que click () não funciona com o webdriver Selenium e Phantom.js. Este link irá ajudá-lo: hjrlive.wordpress.com/2014/04/29/…
Riadh Elloumi

Respostas:

1

Sabe-se que o PhantomJS nem sempre funciona como esperado em alguns sites. Você poderia usar truques / hacks como send_key(Keys.RETURN) nessa tag. Você também pode tentar clicar em uma imagem ou outra tag. Além disso, você pode obter o href e chamá-lo com driver.get(yourhiref).

Outra coisa é que, você só precisa de um desses elementos? Ou para clicar em todos os elementos em find_elements_by_class_name('foo')? Porque se é o primeiro caso eu usaria xpath e css selector como este:

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

ou

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

onde n é a criança que você está procurando.

PS: Eu iria para um Firefox sem cabeça em vez de PhantomJS

dmb
fonte