学习slenium4笔记

这篇博客介绍了如何利用Selenium WebDriver进行Web自动化测试,包括设置Chrome浏览器驱动、页面元素定位、输入值、检查元素状态以及处理选择列表。示例代码展示了查找元素、点击、输入文本等操作,并涉及到了等待条件的设置。
摘要由CSDN通过智能技术生成

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from webdriver_manager.chrome import ChromeDriverManager
import time


driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.get('')
driver.maximize_window()
width = driver.get_window_size().get("width")
height = driver.get_window_size().get("height")
print('当前浏览器窗口大小{0}px,{1}px'.format(width,height))



# 通过定位唯一属性的元素,改元素需要该元素是所需元素的父元素
# vegetable = driver.find_element(By.CLASS_NAME, "login-box")
# fruit = driver.find_element(By.CLASS_NAME,'el-input__inner').send_keys(123)

#查找所有匹配的tag,返回一个列表,使用for循环操作
plants = driver.find_elements(By.TAG_NAME, "p")
for e in plants:
    print(e.text)

# 通过属性定位元素进行操作  好用
driver.find_element(By.CSS_SELECTOR, '[type="text"]').send_keys("admin")
driver.find_element(By.CSS_SELECTOR, '[name="password"]').send_keys("admin888")


# 此方法用于检查在网页上是否启用或禁用了连接的元素。返回一个布尔值 True(如果在当前浏览上下文中启用了连接的元素),则返回 false。
print(driver.find_element(By.CSS_SELECTOR, '[type="text"]').is_enabled())

# 此方法确定引用的元素是否为"选定"。广泛用于复选框、单选按钮、输入元素和选项元素。返回一个布尔值,如果在当前浏览上下文中选择了引用的元素,则返回 true,否则返回 false。
print(driver.find_element(By.CSS_SELECTOR, "input[type='checkbox']:first-of-type").is_selected())
value = driver.find_element(By.CSS_SELECTOR, "input[type='checkbox']:first-of-type")
webdriver.ActionChains(driver).click_and_hold(value).perform()
webdriver.ActionChains(driver).release().perform()
print(driver.find_element(By.CSS_SELECTOR, "input[type='checkbox']:first-of-type").is_selected())

"""
它用于获取被引用元素的尺寸和坐标。
提取的数据正文包含以下详细信息:
    元素左上角的 X 轴位置
    距元素左上角的 y 轴位置
    元素的高度
    元素的宽度
"""
res = driver.find_element(By.CSS_SELECTOR, '[type="text"]').rect
print(res)

#获取指定元素的样式属性值
cssValue = driver.find_element(By.CSS_SELECTOR, '[type="button"]').value_of_css_property('color')
print(cssValue)

# 检索指定元素的呈现文本
text = driver.find_element(By.CSS_SELECTOR, '[type="button"]').text
print(text)


"""
选择列表元素
与其他元素相比,选择列表具有特殊行为。
选择元素可能需要相当多的样板代码才能实现自动化。为了减少这种情况,并使你的测试更干净,Selenium支持包中有一个类。要使用它,您将需要以下 import 语句:
<select>
 <option value=value1>Bread</option>
 <option value=value2 selected>Milk</option>
 <option value=value3>Cheese</option>
</select>

标签需要确定是select标签否则会发生错误
from selenium.webdriver.support.select import Select
select_element = driver.find_element(By.ID,'selectElementID')
select_object = Select(select_element)
# Select an <option> based upon the <select> element's internal index
select_object.select_by_index(1)
# Select an <option> based upon its value attribute
select_object.select_by_value('value1')
# Select an <option> based upon its text
select_object.select_by_visible_text('Bread')
"""

"""
FluentWait 实例定义等待条件的最长时间,以及检查条件的频率
用户可以将等待配置为在等待时忽略特定类型的异常,例如在页面上搜索元素时。
timeout - 超时时间  
poll_frequency - 呼叫间睡眠间隔  
"""
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, timeout=10, poll_frequency=1).until(EC.element_to_be_clickable((By.XPATH, "//div")))
time.sleep(5)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值