下面是本文的完整攻略。
定位元素
定位元素是selenium自动化测试中的关键步骤,正确的定位能够帮助我们准确地找到所需要的元素。在selenium中,有多种方式可以定位元素,主要分为以下几种:
通过ID进行定位
driver.find_element_by_id("element_id")
通过Name进行定位
driver.find_element_by_name("element_name")
通过XPath进行定位
driver.find_element_by_xpath("//element_xpath")
通过CSS Selector进行定位
driver.find_element_by_css_selector("element_css_selector")
通过类名进行定位
driver.find_element_by_class_name("element_class_name")
通过链接文本进行定位
driver.find_element_by_link_text("element_link_text")
通过部分链接文本进行定位
driver.find_element_by_partial_link_text("element_partial_link_text")
通过标签名进行定位
driver.find_element_by_tag_name("element_tag_name")
更多的定位方式可以查看selenium官方文档。
切换Frame
当网页中有多个Frame时,我们需要用到切换Frame的方法,才能够对页面中的元素进行操作。常用的切换Frame的方法有以下两种:
通过Frame的Index进行切换
driver.switch_to.frame(index)
其中index表示frame的下标。
通过Frame的Name或ID进行切换
driver.switch_to.frame(name_or_id)
其中name_or_id表示frame的name或id属性。
下面给出两个实例说明,以便更好地理解:
实例1:通过ID定位Frame
我们现在要在百度首页点击“更多”菜单下的“知道”按钮,但是该按钮位于百度首页的Frame中,因此我们需要切换到该Frame才能够进行点击操作。
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
# 通过ID定位Frame
frame = driver.find_element_by_id("s_lg_img_new")
# 切换到Frame
driver.switch_to.frame(frame)
# 点击“知道”按钮
driver.find_element_by_link_text("知道").click()
# 切换回默认Frame
driver.switch_to.default_content()
driver.quit()
实例2:通过Index定位Frame
我们现在要在一个网页中输入用户名和密码,并点击登录按钮进行登录操作。但是用户名和密码位于该网页的Frame中,因此我们需要切换到该Frame才能够进行输入操作。
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://example.com/login.html")
# 切换到Frame
driver.switch_to.frame(0)
# 输入用户名和密码
driver.find_element_by_name("username").send_keys("test")
driver.find_element_by_name("password").send_keys("123456")
# 点击登录按钮
driver.find_element_by_css_selector("input[type='submit']").click()
# 切换回默认Frame
driver.switch_to.default_content()
driver.quit()
以上就是“selenium学习教程之定位以及切换frame(iframe)”的完整攻略,希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:selenium学习教程之定位以及切换frame(iframe) - Python技术站