Selenium 与 PhantomJS,click() 不起作用

Selenium 与 PhantomJS,click() 不起作用

我有一个可以操作网站的脚本。运行时,webdriver.Chrome(chromedriver.exe)它运行良好。但是当我尝试使用webdriver.PhantomJS(phantomjs.exe)它时,它不起作用。

更具体地说,不起作用的是标签中的 click() a,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

众所周知,PhantomJS 在某些网站上并不总是按预期工作。您可以send_key(Keys.RETURN)在该标签上使用类似技巧/黑客。您还可以尝试单击图像或其他标签。您还可以获取 href,然后使用 调用它driver.get(yourhiref)

另一件事是,您是否只需要其中一个元素?还是单击每个元素find_elements_by_class_name('foo')?因为如果是第一种情况,我会使用 xpath 和 css 选择器,如下所示:

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

或者

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

其中 n 是您正在寻找的孩子。

附言:我会选择 Headless Firefox 而不是 PhantomJS

相关内容