Selenium不会单击python按钮?

boo*_*erz 0 python selenium

请有人帮我这个,

我无法获得selenium点击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()
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

unu*_*tbu 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)
Run Code Online (Sandbox Code Playgroud)

你会在/ tmp/out中看到:

<frameset rows="*"><frame src="http://www30.speedyshare.com/upload_page.php" name="index31" />
</frameset>
Run Code Online (Sandbox Code Playgroud)

啊哈.您要单击的标记位于框架内.所以首先切换到该帧:

driver.switch_to.frame("index31")
Run Code Online (Sandbox Code Playgroud)

然后你将能够通过id找到元素:

elem = driver.find_element_by_id("selectfilebox")
elem.click()
Run Code Online (Sandbox Code Playgroud)

这个问题与Selenium无法定位元素(Python)WebScraping基本相同; 如果不先了解解决方案,就很难知道.