2015-09-27 515 views
0

请有人可以帮助我,Selenium不会用python点击按钮?

我不能让硒单击按钮与python。我对Python的3.4和使用Firefox 42

浏览器打开,但仅此而已

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 

driver = webdriver.Firefox() 
driver.get("http://www.speedyshare.com/") 
elem = find_element_by_id_name("selectfilebox") 
elem.click() 

浏览器打开,但我得到以下错误

Traceback (most recent call last): 
    File "/home/ro/sele.py", line 6, in <module> 
    elem = find_element_by_id_name("selectfilebox") 
NameError: name 'find_element_by_id_name' is not defined 
+0

这不是一个硒问题,这是您的Python导入问题。你需要告诉Python如何找到'find_element_by_id_name'函数。 – Adam

+0

right ok谢谢,我很抱歉,如果我听起来像一个noob,但你的意思是elem = driver.find_element_by_name? – booberz

+0

就是这样的。我不知道该函数在哪个模块中,我将留给你找出来。 – Adam

回答

5

它有助于检查driver.page_source看作为驱动程序看到它的HTML

driver.get("http://www.speedyshare.com/") 
content = driver.page_source 
with open('/tmp/out', 'wb', encoding='utf-8') as f: 
    f.write(content) 

你会看到在/ tmp /出:

<frameset rows="*"><frame src="http://www30.speedyshare.com/upload_page.php" name="index31" /> 
</frameset> 

啊哈。您想要点击的标签位于一个框架内。所以切换到该框架的第一个:

driver.switch_to.frame("index31") 

,然后你就可以通过ID查找元素:

elem = driver.find_element_by_id("selectfilebox") 
elem.click() 

这个问题基本上是一样的Selenium Unable to locate element (Python) WebScraping;没有先了解解决方案就很难知道。

+0

感谢你们,你们真的很深入,这非常有见地,对不起,我花了我的时间来回复,但我想让它工作,而不是让任何人溺爱信息。我已经想出了这个,但它仍然无法正常工作。 – booberz