python selenium函数没有定义?

时间:2015-09-28 16:34:49

标签: python selenium

请任何人帮助我。它说我的功能没有定义。

from selenium import webdriver

driver = webdriver.Firefox()
driver.get("http://www.speedyshare.com/")

frame_name = driver.find_elements_by_xpath("/html/frameset/frame").get_attribute("name")

driver.switch_to.frame(frame_name)

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

我得到了这个追溯。

Traceback (most recent call last):
  File "/home/ro/selem.py", line 6, in <module>
    frame_name = driver.find_elements_by_xpath("/html/frameset/frame").get_attribute("name")
AttributeError: 'list' object has no attribute 'get_attribute'
>>> 

编辑:

当我跑步时

from selenium import webdriver

driver = webdriver.Firefox()
driver.get("http://www.speedyshare.com/")

driver.switch_to.frame(0)

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

from selenium import webdriver

driver = webdriver.Firefox()
driver.get("http://www.speedyshare.com/")

frame_name = driver.find_elements_by_xpath("/html/frameset/frame").get_attribute("name")

driver.switch_to.frame(frame_name)

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

它们都继续运行而没有回溯,但鼠标停留在地址栏中。

1 个答案:

答案 0 :(得分:2)

虽然@Kevin和@jonrsharpe积分完全正确,但您甚至不需要这一行:

frame_name = driver.find_elements_by_xpath("/html/frameset/frame").get_attribute("name")

您只需传递帧名称即可切换到:

driver.switch_to.frame("frame_name")

或者,帧索引(看起来像是页面上的第一个iframe):

driver.switch_to.frame(0)

selenium webdriver将负责定位框架并切换到它。