1.Web自动化环境搭建需要的相关软件?
1)Python开发环境:python:解释器 pycharm:编码工具
2)安装Selenium(需在系统变量路径)
3)安装浏览器Chrome
4)安装浏览器驱动chromedriver.exe
扩展:selenium安装查看及卸载命令
pip install selenium==3.141.0 -i https://pypi.douban.com/simple/
pip show selenium
pip uninstall selenium
2.元素定位的⽅法6个+
#1#id定位#2#name定位#3#class_name定位
#4# tag_name定位#5#link_text定位#6#partial_link_text定位
#7#xpath定位#8#CSS定位#9#elements定位#10#By定位
1)最常用的定位方式是#7#xpath定位和#8#CSS定位#10#By定位
2)因为可以直接到网页【复制xpath】提高率,降低错误率,css定位更简洁
3)elements获取一组元素的方法返回列表
4)By定位格式统一只需修改方法和对应方法值
import time
from selenium import webdriver
# 创建浏览器对象
driver = webdriver.Chrome()
# 打开网页
driver.get("http://121.43.169.97:8848/pageA.html")
#1#id定位账号元素#send_key()输入账号文本框admin
driver.find_element_by_id('userA').send_keys('admin')
#2#name定位密码元素#send_key()输入密码框123456
driver.find_element_by_name('passwordA').send_keys('123456')
#3#class_name定位电话元素#send_key()输入电话18611111111
driver.find_element_by_class_name('telA').send_keys('18611111111')
#4# tag_name定位注册元素#点击按钮
driver.find_element_by_tag_name('button').click()
#5#partial_link_text定位连接元素新闻#点击定位元素新闻
driver.find_element_by_partial_link_text('百度').click()
#6#link_text定位连接元素新闻#点击定位元素新闻
driver.find_element_by_link_text('新闻').click()
# 暂停5秒
time.sleep(5)
# 关闭浏览器驱动对象
driver.quit()
2.1.元素定位的xpath定位⽅法6个+
import time
from selenium import webdriver
# 创建浏览器对象
driver = webdriver.Chrome()
# 打开网页
driver.get("http://121.43.169.97:8848/pageA.html")
#1#xpath绝对路径/定位账号元素#send_key()输入账号文本框admin
driver.find_element_by_xpath('/html/body/div/fieldset/form/p[1]/input').send_keys('admin')
#1#xpath相对路径//定位密码元素#send_key()输入密码框123456
driver.find_element_by_xpath('//p[2]/input').send_keys('123456')
#2#xpath属性定位电话元素#send_key()输入电话18611111111
driver.find_element_by_xpath('//*[@id="telA"]').send_keys('18611111111')
#3#xpath逻辑运and算符定位test3元素#send_key()输入电话1811
driver.find_element_by_xpath('//*[@name="user-test"and@]').send_keys('1811')
#4#xpath属性层级定位test4元素#send_key()输入123@out.com
driver.find_element_by_xpath('//*[@id="p4"]/input').send_keys('123@out.com')
#5#xpath文本定位超链接元素#click()点击
driver.find_element_by_xpath('//*[text()="打开百度"]').click()
#6#contains关键字定位输入框
driver.find_element_by_xpath('//*[contains(@placeholder,"延时加载")]').send_keys('666')
#7#contains关键字+文本定位超链接hao123
driver.find_element_by_xpath('//*[contains(text(),"ao12")]').click()
# 暂停3秒
time.sleep(3)
# 关闭浏览器驱动对象
driver.quit()
2.2.元素定位的CSS定位⽅法6个+
import time
from selenium import webdriver
# 1. 创建浏览器驱动对象
driver = webdriver.Chrome()
# 2. 打开目标页面打开注册A.html页面,完成以下操作
driver.get("http://121.43.169.97:8848/pageA.html")
# 3. 业务操作
# 定位账号1).使用CSS定位方式中id选择器定位用户名输入框,并输入:admin
driver.find_element_by_css_selector("input#userA").send_keys("admin")
# 定位密码2).使用CSS定位方式中属性选择器定位密码输入框,并输入:123456
driver.find_element_by_css_selector("input[name='passwordA']").send_keys("123456")
# 定位电话号码3).使用CSS定位方式中class选择器定位电话号码输入框,并输入:18600000000
driver.find_element_by_css_selector("input.telA").send_keys("18600000000")
driver.find_element_by_css_selector("input[class='telA'").send_keys("11")
# 定位注册按钮4).使用CSS定位方式中元素选择器标签名定位注册按钮,并点击
driver.find_element_by_css_selector("button").click()
# 定位账号5).使用CSS定位方式中层级后代选择器id定位用户名输入框,并输入:admin
driver.find_element_by_css_selector("p[id='pa'] input").send_keys("ating")
# 定位电话号码6).使用CSS定位方式中模糊^*$选择器定位电话号码输入框,并输入:18600000000
driver.find_element_by_css_selector("input[placeholder^='请输入电话']").send_keys("66666666")
# 4. 暂停3秒
time.sleep(3)
# 5. 关闭浏览器驱动对象
driver.quit()
2.3.元素定位的elements 定位⽅法索引调用
import time
from selenium import webdriver
# 创建浏览器对象
driver = webdriver.Chrome()
driver.get("http://121.43.169.97:8848/pageA.html")
#elements定义元素
input1=driver.find_elements_by_tag_name("input")
print(len(input1))#打印元素数量并调用索引【1】元素操作
input1[1].send_keys('123456')
# 暂停3秒
time.sleep(3)
# 关闭浏览器驱动对象
driver.quit()
2.4.元素定位的By定位⽅法6个+
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
# 创建浏览器对象
driver = webdriver.Chrome()
# 打开网页
driver.get("http://121.43.169.97:8848/pageA.html")
#By使用ID定位账号用户名输入数据
driver.find_element(By.ID,'userA').send_keys('admin')
#By使用NAME定位密码并输入数据
driver.find_element(By.NAME,'passwordA').send_keys('123456')
#By使用CLASS_NAME定位手机号输入数据
driver.find_element(By.CLASS_NAME,'telA').send_keys('123456.qq.com')
#By使用TAG_NAME定位注册按钮并点击
driver.find_element(By.TAG_NAME,'button').click()
#By使用XPATH定位手机号输入数据
driver.find_element(By.XPATH,'//*[@id="telA"]').send_keys('654321')
#By使用CSS_SELECTOR定位邮箱输入数据
driver.find_element(By.CSS_SELECTOR,'input.emailA').send_keys('123456.qq.com')
#By使用PARTIAL_LINK_TEXT定位超链接百度并点击
driver.find_element(By.PARTIAL_LINK_TEXT,'百度').click()
#By使用LINK_TEXT定位超链接新闻并点击
driver.find_element(By.LINK_TEXT,'新闻').click()
# 暂停3秒
time.sleep(3)
# 关闭浏览器驱动对象
driver.quit()


