web自动化测试
# 接口测试
# web 自动化测试
# 适合场景
- 版本稳定,无频繁的需求变更
- 无需思考,流程和结果固定,大量重复性的测试
- 冒烟测试
- 回归测试
# Selenium
# 简单使用
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
service = Service('./chromedriver.exe')
driver = webdriver.Chrome(service=service)
driver.get('https://www.baidu.com')
print(driver.title)
# 获取元素
# https://blog.csdn.net/gogowhh/article/details/127546349
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
option = webdriver.ChromeOptions()
# chrome 会自动进行更新,我的情况是找不到对应的 driver 会闪退
# 我不知道是不是这个问题,所以我加了这个选项果然就不闪退了
# 可能是 driver 版本, 可以 selenium版本,如果不行就回退
option.add_experimental_option("detach",True)
# 去掉 chrome 上面的选项卡
option.add_experimental_option('excludeSwitches', ['enable-automation'])
service = Service('./chromedriver.exe')
driver = webdriver.Chrome(service=service, options=option)
driver.get('https://www.jd.com/')
input_elem = driver.find_element(by=By.ID, value="key")
input_elem.send_keys("篮球")
input_elem_1 = driver.find_element(by=By.CSS_SELECTOR, value="#key")
input_elem.send_keys("足球")
submit_button = driver.find_element(by=By.CLASS_NAME, value="button")
submit_button.click()
- 闪退问题参考,https://blog.csdn.net/gogowhh/article/details/127546349 (opens new window)
input_elem = driver.find_element(by=By.ID, value="kw")
, 根据id找到元素submit_button = driver.find_element(by=By.CLASS_NAME, value="button")
, 根据class名找到元素
# 句柄
简单理解就是,每一个window和 tab页都是句柄
....
driver.get('https://www.jd.com/')
link_elem = driver.find_element(by=By.LINK_TEXT, value="家用电器")
link_elem.click()
handlers = driver.window_handles
for h in handlers:
if h != driver.current_window_handle:
driver.switch_to.window(h)
print("当前句柄是:", driver.title)