Python+Selenium实现前端自动化测试

步骤

  1. 安装selenium:pip install selenium
  2. 下载webdriver,比如Edge浏览器driver(MicrosoftWebDriver.exe)
  3. 编写代码
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time, sys, io

driver = webdriver.Edge(executable_path="D:/pypie/bin/MicrosoftWebDriver.exe")
driver.get("http://www.nifdc.org.cn/CL0001/")
assert "中国食品药品检定研究院" in driver.title
# 查找并点击“业务公告通知”选项
elem = driver.find_element_by_name("1198552690603")
elem.click()
# 获取浏览器所有tab
handles = driver.window_handles
# print('handles: ', handles)
# print('cwh: ', driver.current_window_handle)

# 切换浏览器tab并点击“业务公告通知”右侧更多
driver.switch_to_window(handles[1])
time.sleep(2)
elem = driver.find_element_by_name("1184809578230")
time.sleep(2)
elem.click()
# 查找并点击页面底部一个年份,比如2012
time.sleep(2)
elem = driver.find_element_by_xpath("//font[contains(text(),'2012')]")
# 另外两个元素定位方法
# elem = driver.find_element_by_xpath("/html/body/center/table[2]/tbody/tr/td/table[2]/tbody/tr/td[2]/table/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr/td/table/tbody/tr[1]/td/table/tbody/tr[3]/td/table/tbody/tr/td/table/tbody/tr[4]/td/table/tbody/tr/td[6]/a")
# elem = driver.find_element_by_css_selector("#table297 > tbody:nth-child(1) > tr:nth-child(1) > td:nth-child(6) > a:nth-child(1)")
time.sleep(2)

elem.click()
# 解决编码问题:UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 0: illegal multibyte sequence 
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')

time.sleep(3)
driver.close() # 关闭当前tab
time.sleep(3)
driver.quit() # 关闭浏览器所有tab

猜你喜欢

转载自blog.csdn.net/lylfv/article/details/81842596