请有人帮我这个,
我无法通过python单击按钮获取selenium。我在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 :(得分:6)
检查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 / out中看到:
<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基本相同;如果不先了解解决方案,就很难知道。