自动化测试之Python
功能7:层级定位
有多层框架定位
# 当有多层框架套用的时候的操作:
from selenium import webdriver
import time
import os
driver = webdriver.Chrome()
file_path = 'file:///'+os.path.abspath("e:/login.html")
driver.get(file_path)
driver.maximize_window()
# 从默认页面跳转到frame1
# 因为f2是放在f1中
driver.switch_to.frame("f1")
driver.switch_to.frame("f2")
driver.find_element_by_id("kw").send_keys("西藏")
driver.find_element_by_id("su").click()
time.sleep(7)
# click是存放在法f1中的,是不能直接进行跳转,必须先跳转到默认页面
driver.switch_to.default_content()
driver.switch_to.frame("f1")
driver.find_element_by_link_text("click").click()
time.sleep(8)
功能8:多层窗口定位
# 多层窗口定位
from selenium import webdriver
import time
import os
from selenium.webdriver import ActionChains
driver = webdriver.Chrome()
file_path = 'file:///'+os.path.abspath("e:/login.html")
driver.get(file_path)
driver.find_element_by_link_text("link1").click()
element = driver.find_element_by_link_text("Another action")
ActionChains(driver).move_to_element(element).perform()
time.sleep(10)
driver.quit()
功能9:下拉选项
# 下拉选项
from selenium import webdriver
import time
import os
driver = webdriver.Chrome()
file_path = 'file:///'+os.path.abspath("e:/login.html")
driver.get(file_path)
driver.maximize_window()
# 通过定位一组元素:
lists = driver.find_element_by_tag_name("option")
# 1:通过循环
# for list in lists:
# if list.get_attribute('value') == "10.69":
# list.click()
# 2:因为存放的位置是数组中,所以可以通过下表进行访问
lists[2].click()
# 3:根据xpath定位
driver.find_element_by_xpath("//*[@value='8.34]").click()
功能10:弹出框
# 出现弹框信息,如果不点击的话,页面上的所有东西都没有办法点击
from selenium import webdriver
import time
import os
driver = webdriver.Chrome()
file_path = 'file:///'+os.path.abspath("e:/login.html")
driver.get(file_path)
driver.maximize_window()
# 点击之后会弹出弹出框
driver.find_element_by_id("tooltip").click()
time.sleep(6)
# 得到弹出框的句柄
alert = driver.switch_to.alert()
alert.accept()
time.sleep(6)
功能11:
上传文件
# 上传文件
from selenium import webdriver
import time
import os
driver = webdriver.Chrome()
# 获取html文件的url
file_path = 'file:///'+os.path.abspath("e:/login.html")
driver.get(file_path)
time.sleep(3)
driver.find_element_by_name("file").send_keys("e:/python.txt")
time.sleep(5)
driver.quit()