我有一个可以操作网站的脚本。运行时,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