【问题标题】:Python+Selenium+PhantomJs = Not clicking =( But Firefox clicksPython+Selenium+PhantomJs = 不点击 =( 但 Firefox 点击
【发布时间】:2017-05-31 00:47:59
【问题描述】:

我有一个问题:

这是在 Firefox 中单击站点上的链接的代码。有用。点击。 但是 PhantomJS 中的相同代码进入页面但没有点击。 请帮助解决问题。提前致谢

from selenium import webdriver
import time
browser=webdriver.PhantomJS()
browser.get('http://nnmclub.to')
time.sleep(10)
browser.find_element_by_xpath("//a[contains(@href,'www.marketgid.com')]").click()
time.sleep(10)
browser.quit()

【问题讨论】:

  • 你怎么知道没有点击?这是一个无头浏览器。至少你应该添加browser.get_screenshot_as_file(path_to_file)来检查页面是否改变了
  • 我错过了代码中的这一行。我用它。使用“browser.get_screenshot”,我知道他没有被点击。刚刚加载的页面,但未完成链接。

标签: python selenium phantomjs


【解决方案1】:

您尝试单击的链接具有target="_blank" 属性,这意味着该链接应在新选项卡(窗口)中打开。要查看它实际点击了,您应该尝试使用以下代码切换到该新窗口:

from selenium import webdriver
import time

browser=webdriver.PhantomJS()
browser.get('http://nnmclub.to')
current = browser.window_handles[0]
time.sleep(10)
browser.find_element_by_xpath("//a[contains(@href,'www.marketgid.com')]").click()
time.sleep(10)
newWindow = [window for window in browser.window_handles if window != current][0]
browser.switch_to.window(newWindow)
browser.get_screenshot_as_file(path_to_file)
browser.quit()

【讨论】:

  • 欢迎。如果它解决了您的问题,则将此答案标记为“已接受”
  • 安德森,谢谢!还有一个问题。请告诉我。如何在脚本中通过 PhantomJS 中的代理使其工作?
  • 谢谢!我使它与: service_args = [ '--proxy=78.23.244.145:80', '--proxy-type=http', ] driver = webdriver.PhantomJS(service_args=service_args)
  • 我可以使用列表代理吗?是否有一个代理列表,并且该脚本适用于列表中的所有代理?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-06
  • 2021-10-18
  • 1970-01-01
  • 1970-01-01
  • 2021-05-17
  • 2016-08-11
  • 1970-01-01
相关资源
最近更新 更多