1、打开Pycharm,新建一个py文件,文件名test_开头
2、输入代码
from selenium import webdriver #导入web自动化模块
from selenium.webdriver.common.by import By#导入By模块
from selenium.webdriver.support.wait import WebDriverWait#显示等待模块
from selenium.webdriver.support import expected_conditions as EC#判断元素模块
import time#时间模块
from selenium.webdriver.common.action_chains import ActionChains #鼠标操作
from selenium.webdriver.support.select import Select #下拉框处理
from selenium.webdriver.common.keys import Keys#导入keys类
def test_webauto():#定义测试类名称,也可以理解为建立一个测试用例名称
dr = webdriver.Chrome()#webDriver实例化
url ='https://www.baidu.com/'#网页地址
dr.get(url)#请求网页地址
dr.implicitly_wait(10)#隐式等待,等待10秒
dr.find_element_by_link_text('登录').click()#找到登录元素,点击登录
WebDriverWait(dr,10).until(EC.visibility_of_element_located((By.XPATH,'//*[@id="passport-login-pop"]')))#显示等待,等待登录模块弹出
dr.find_element_by_id('TANGRAM__PSP_11__footerULoginBtn').click()#点击用户登录
dr.find_element_by_id('TANGRAM__PSP_11__userName').send_keys('test')#在用户输入框输入用户名
dr.find_element_by_id('TANGRAM__PSP_11__password').send_keys('123456')#在密码输入框输入密码
time.sleep(1)#强制休眠1秒
dr.find_element_by_id('TANGRAM__PSP_4__closeBtn').click()#找到关闭按钮点击
acs = ActionChains(dr)#ActionChains类实例化
WebDriverWait(dr,10).until(EC.visibility_of_element_located((By.XPATH,'//*[@id="s-usersetting-top"]')))#等待元素出现
acs.move_to_element(dr.find_element_by_xpath('//*[@id="s-usersetting-top"]')).perform()#鼠标悬浮到设置选项上
time.sleep(1)
dr.find_element_by_link_text('搜索设置').click()
dr.find_element_by_xpath('//*[@id="se-settting-1"]/span[2]/label').click()
time.sleep(1)
dr.find_element_by_xpath('//*[@id="wrapper"]/div[6]/div/div/ul/li[2]').click() #点击高级搜索
#非select下拉框操作
dr.find_element_by_class_name('c-select-selection').click()
dr.find_element_by_class_name('c-select-dropdown-list')
dr.find_element_by_css_selector('#adv-setting-gpc > div > div.c-select-dropdown > div.c-select-dropdown-list > p:nth-child(2)').click()#选择时间
dr.find_element_by_xpath('//*[@id="wrapper"]/div[6]/span').click()#关闭搜索设置
dr.find_element_by_css_selector('#kw').send_keys('python')#找到输入框输入python
#模拟键盘操作
so = dr.find_element_by_css_selector('#kw')
so.send_keys(Keys.CONTROL,'a')#选中输入框里的关键字
time.sleep(1)
so.send_keys(Keys.CONTROL,'c')#复制选中的关键字
time.sleep(1)
so.send_keys(Keys.BACKSPACE)#删除选中的关键字
time.sleep(1)
dr.get('http://www.bing.com')#打开bing
time.sleep(1)
bingso=dr.find_element_by_id('sb_form_q')#找到bing的搜索框
bingso.send_keys(Keys.CONTROL,'v')#粘贴复制的文字
dr.find_element_by_class_name('b_searchboxSubmit').submit()#提交查询
time.sleep(1)
down ="var q=document.documentElement.scrollTop=10000"#浏览器滑动操作,滑动到底部
up ="var q=document.documentElement.scrollTop=0"#浏览器滑动操作,滑动到顶部
dr.execute_script(down)
time.sleep(5)
dr.execute_script(up)
time.sleep(20)
dr.quit()
3、这里加入显示等待原因,是为了防止网络延迟导致元素迟出现运行失败
4、在同一个文件夹下建立一个main.py文件
import pytest
if __name__ == '__main__':
pytest.main(['--html=testreport.html'])#在当前文件夹下生成一个testreport.html的报告文件
5、运行结果
"E:\Python Project\venv\Scripts\python.exe" "E:/Python Project/learnautotest/main.py"
============================= test session starts =============================
platform win32 -- Python 3.7.3, pytest-6.2.1, py-1.10.0, pluggy-0.13.1
rootdir: E:\Python Project\learnautotest
plugins: html-3.1.1, metadata-1.11.0
collected 1 item
Cases\test_autowebaction.py . [100%]
- generated html file: file://E:\Python Project\learnautotest\testreport.html -
============================= 1 passed in 20.35s ==============================
Process finished with exit code 0