请任何人帮助我。它说我的功能没有定义。
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()
它们都继续运行而没有回溯,但鼠标停留在地址栏中。
答案 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将负责定位框架并切换到它。