2017-01-16 76 views
2

我有一个问题:的Python +硒+ PhantomJs =不点击=(但Firefox点击

这里是点击在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() 
+1

你怎么知道那里没有点击?这是一个无头浏览器。至少你应该添加'browser.get_screenshot_as_file(path_to_file)'来检查页面是否改变了 – Andersson

+0

我错过了代码中的这一行。我用它。用“browser.get_screenshot”,我知道他没有被点击。刚加载页面,但没有完成链接。 –

回答

2

你试图单击有属性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() 
+0

是的,它的工作!谢谢安德森! –

+0

欢迎。如果它解决了您的问题,请将此答案标记为“已接受” – Andersson

+0

Andersson,谢谢!还有一个问题。请告诉我。如何通过脚本中的PhantomJS代理工作? –