声明
我是跟着黑马的自动化测试课学的,用到的学习资源(包括本地网页文件、源码等)放在网盘了:
链接:https://pan.baidu.com/s/1XSRB6W_h-Ycz4yINPljJAA?pwd=o4de
提取码:o4de
一、元素操作方法
1.1 元素操作的意义
(1)让脚本模拟用户给指定元素输入值
(2)让脚本模拟人为删除元素的内容
(3)让脚本模拟点击操作
1.2 元素操作的方法
(1)click() 单击元素
(2)send_keys(value) 模拟输入
(3)clear() 清除文本
1.3 案例
1.4 自动化代码
注意:黑马视频课是19年的,现在很多插件名还有方法的使用都更新了,以下代码是能正确运行的。
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
url = "file:///C:/Users/Administrator/Desktop/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/web%E8%87%AA%E5%8A%A8%E5%8C%96_day01_%E8%AF%BE%E4%BB%B6+%E7%AC%94%E8%AE%B0+%E8%B5%84%E6%96%99+%E4%BB%A3%E7%A0%81/02_%E5%85%B6%E4%BB%96%E8%B5%84%E6%96%99/%E6%B3%A8%E5%86%8CA.html"
driver.get(url)
driver.find_element(By.CSS_SELECTOR,"#userA").send_keys("lagom")
driver.find_element(By.CSS_SELECTOR,"#passwordA").send_keys("123456")
driver.find_element(By.CSS_SELECTOR,".telA").send_keys("12890902887")
driver.find_element(By.CSS_SELECTOR,"#emailA").send_keys("123@qq.com")
sleep(5)
# 输入内容前 先清空(否则会追加)
# 清空 修改手机号
driver.find_element(By.CSS_SELECTOR,".telA").clear()
driver.find_element(By.CSS_SELECTOR,".telA").send_keys("10000000000")
sleep(3)
# 点击注册按钮
driver.find_element(By.CSS_SELECTOR,"button").click()
sleep(3)
driver.quit()
1.5 运行效果
由于运行效果是连续的动态过程,这里只展示部分截图。
二、操作浏览器
2.1 常用方法
【提示】
对于close()与quit(),工作中用的较多的是quit()。
2.2 示例代码
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
url = "file:///C:/Users/Administrator/Desktop/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/web%E8%87%AA%E5%8A%A8%E5%8C%96_day01_%E8%AF%BE%E4%BB%B6+%E7%AC%94%E8%AE%B0+%E8%B5%84%E6%96%99+%E4%BB%A3%E7%A0%81/02_%E5%85%B6%E4%BB%96%E8%B5%84%E6%96%99/%E6%B3%A8%E5%86%8CA.html"
driver.get(url)
driver.maximize_window()
sleep(4)
driver.set_window_size(300,200)
sleep(4)
driver.set_window_size(300,600)
sleep(4)
driver.maximize_window()
driver.find_element(By.PARTIAL_LINK_TEXT,"访问").click()
sleep(4)
driver.back()
sleep(4)
driver.forward()
sleep(2)
driver.quit()
sleep(3)
driver.quit()
2.3 运行效果
2.4 刷新
代码:
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
url = "file:///C:/Users/Administrator/Desktop/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/web%E8%87%AA%E5%8A%A8%E5%8C%96_day01_%E8%AF%BE%E4%BB%B6+%E7%AC%94%E8%AE%B0+%E8%B5%84%E6%96%99+%E4%BB%A3%E7%A0%81/02_%E5%85%B6%E4%BB%96%E8%B5%84%E6%96%99/%E6%B3%A8%E5%86%8C%E5%AE%9E%E4%BE%8B.html"
driver.get(url)
driver.maximize_window()
# 用户名输入admin
driver.find_element(By.CSS_SELECTOR,"#user").send_keys("admin")
# 暂停3秒
sleep(3)
# 刷新
driver.refresh()
# 获取title
title = driver.title
print("当前页面title为:",title)
# 获取当前url
current_url = driver.current_url
print("当前url为:",current_url)
# 点击 注册A网页 打开新窗口
driver.find_element(By.PARTIAL_LINK_TEXT,"注册A网页")
# 暂停3秒
sleep(3)
# 关闭主窗口
driver.close()
# 暂停3秒
sleep(2)
# 退出
driver.quit()
效果:
三、获取元素信息
3.1 意义
(1)如何获取元素文本?
(2)如何获取元素属性值?
(3)如何让程序判断元素是否为可见状态?
3.2 获取元素信息的常用方法
3.3 案例
代码:
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
url = "file:///C:/Users/Administrator/Desktop/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/web%E8%87%AA%E5%8A%A8%E5%8C%96_day01_%E8%AF%BE%E4%BB%B6+%E7%AC%94%E8%AE%B0+%E8%B5%84%E6%96%99+%E4%BB%A3%E7%A0%81/02_%E5%85%B6%E4%BB%96%E8%B5%84%E6%96%99/%E6%B3%A8%E5%86%8C%E5%AE%9E%E4%BE%8B.html"
driver.get(url)
driver.maximize_window()
# 获取用户名文本框大小
size = driver.find_element(By.CSS_SELECTOR,"#user").size
print("用户名大小:",size)
sleep(4)
# 获取页面上第一个超文本链接内容
text = driver.find_element(By.CSS_SELECTOR,"a").text
print("页面中第一个a标签为:",text)
sleep(4)
# 获取页面上第一个超文本链接地址
att = driver.find_element(By.CSS_SELECTOR,"a").get_attribute("href")
print("页面上第一个超文本链接地址:",att)
sleep(4)
# 判断span元素是否可见
display = driver.find_element(By.CSS_SELECTOR,"span").is_displayed()
print("span元素是否可见:",display)
sleep(4)
# 判断 取消 按钮是否可用
# enabled = driver.find_element(By.CSS_SELECTOR,"#cancle").is_enabled()
# print("取消按钮是否可用:",enabled)
# 选中 旅游
driver.find_element(By.CSS_SELECTOR,"#ly").click()
# 判断旅游是否被选中
selected = driver.find_element(By.CSS_SELECTOR,"#ly").is_selected()
print("旅游是否被选中:",selected)
sleep(4)
# 退出
driver.quit()
效果: