首页 > 其他分享 >Web自动化_元素操作+元素信息

Web自动化_元素操作+元素信息

时间:2022-09-25 15:01:44浏览次数:49  
标签:Web url 元素 driver element sleep 自动化 import find

元素操作

学习原因

  1. 需要让脚本模拟用户给指定元素输入值
  2. 需要让脚本模拟人为删除元素的内容
  3. 需要让脚本模拟点击操作

方法

  1. send_keys # 输入方法
  2. click( ) # 点击方法
  3. clear( ) # 清空
  4. submit( ) # input提交

提示

  1. 在输入方法之前一定要清空操作

代码

from time import sleep

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Firefox()
driver.get("http://www.baidu.com")

# 获取所有的input元素
# elements = driver.find_elements(By.TAG_NAME, "input")
# print(len(elements))

# elements有s:返回列表
elements2 = driver.find_elements(By.ID, "kw")
print(type(elements2))
# 通过下标输入内容
elements2[0].send_keys("admin")
# 通过遍历输入
# for el in elements2:
#     el.send_keys("李唯")

driver.find_element(By.ID, "su").submit()
sleep(3)
# 清空操作
driver.find_element(By.ID, "kw").clear()
driver.find_element(By.ID, "kw").send_keys("pdd砍一刀")
driver.find_element(By.ID, "su").submit()

操作浏览器常用方法

案例(前5)

from selenium import webdriver
from time import sleep

from selenium.webdriver.common.by import By

driver = webdriver.Firefox()
url = r"http://www.baidu.com"
driver.get(url)

# 将浏览器最大化
driver.maximize_window()
# 暂停两秒
sleep(2)
# 设置固定大小 300 200
driver.set_window_size(300, 200)
# 暂停两秒
sleep(2)
# 移动浏览器窗口位置  x:320, y:150
driver.set_window_position(320, 150)
# 暂停两秒
sleep(2)
# 最大化
driver.maximize_window()
# 点击 访问新闻  注意:要演示后退功能,必须限制性打开新的网站
driver.find_element(By.LINK_TEXT, "新闻").click()
# 暂停两秒
sleep(2)
# 执行后退 -->www.baidu.com
driver.back()
# 暂停两秒
sleep(2)
# 执行前进 -->新闻  注意:前进必须放到后退操作后执行
driver.forward()

sleep(3)
driver.quit()

案例(后5)

from selenium import webdriver
from time import sleep

from selenium.webdriver.common.by import By

driver = webdriver.Firefox()
url = r"http://www.baidu.com"
driver.get(url)

# 刷新 - 1. 输入admin 2. 刷新完成--清空
driver.find_element(By.ID, "kw").send_keys("admin")
# 暂停2秒
sleep(2)
# 刷新
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, "新闻").click()
# 暂停3秒
sleep(3)
# 关闭主窗口
driver.close()


sleep(3)
driver.quit()
当前页面title为: 百度一下,你就知道
当前页面url为: https://www.baidu.com/

提示

  1. driver.titledriver.current_url没有括号,应用场景:一般为判断上步操作是否执行成功。

  2. driver.maximize_window() :一般为前置代码,在获取driver后,直接编写最大化浏览器

  3. driver.refresh():应用场景,在后面的cookie章节会使用到。

  4. deiver.close() 与 driver.quit() 的区别:

    1. close():关闭当前主窗口
    2. quit():关闭由driver对象启动的所有窗口

    提示:如果当前只有1个窗口,close与quit没有任何区别。

获取元素信息

常用方法

1. size 返回元素大小
2. text 获取元素的文本
3. get_attribute( "xxx" ) 获取属性值
4. is_displayed( ) 判断元素是否可见
5. is_enabled( ) 判断元素是否可用
6. is_selected( ) 判断元素是否选中,用来检查复选框或单选框是否被选中

提示

  1. size、text:为属性,调用时无括号,如xxx.size

案例

需求:使用‘注册A.html'页面,完成以下操作:

1). 获取用户名输入框的大小

2). 获取页面上第一个超链接的文本内容

3). 获取页面上第一个超链接的地址

4). 判断页面中的span标签是否可见

5). 判断页面中取消按钮是否可用

6). 判断页面中'旅游'对应的复选框是否为选中的状态

# 获取浏览器驱动对象
from selenium import webdriver
from time import sleep

from selenium.webdriver.common.by import By

driver = webdriver.Firefox()
# 将浏览器最大化
driver.maximize_window()
# 打开urL
url = r"D: \web自动化注册实例.html"
driver.get(url)

# 获取用户名文本框大小
size = driver.find_element(By.CSS_SELECTOR, "#user").size
print("用户名大小为:", size)
# 获取页面上第一个超文本链接内容
text=driver.find_element(By.CSS_SELECTOR, "a").text
print("页面中第一个a标签为:", text)
# 获取页面上第一个超文本链接地址  get_attribute("href")
att = driver.find_element(By.CSS_SELECTOR, "a").get_attribute("href")
print("页面中第一个a标签的href属性为:", att)

# 判断span元素是否 可见
display = driver.find_element(By.CSS_SELECTOR, "span").is_displayed()
print("span元素是否可见:", display)

# 判断 取消按钮 是否 可用
enabled = driver.find_element(By.CSS_SELECTOR, "#cancel").is_enabled()
print("取消按钮是否可用", enabled)

# 判断旅游是否被 选中
select = driver.find_element(By.CSS_SELECTOR, "#ly").is_selected()
print("旅游是否被选中:", select)

# 暂停2
sleep(2)
# 关闭驱动对象
driver.quit()

提示

  1. text 和 size 调用时,无括号
  2. get_attribute 一般应用场景:判断一组元素是否为想要的元素或者判断元素属性值是否正确
  3. is_displayed、is_enabled、is_selected,在特殊应用场景中使用

标签:Web,url,元素,driver,element,sleep,自动化,import,find
From: https://www.cnblogs.com/lzy5967/p/16727860.html

相关文章