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)
学习slenium4笔记
于 2022-03-03 17:30:49 首次发布
这篇博客介绍了如何利用Selenium WebDriver进行Web自动化测试,包括设置Chrome浏览器驱动、页面元素定位、输入值、检查元素状态以及处理选择列表。示例代码展示了查找元素、点击、输入文本等操作,并涉及到了等待条件的设置。
摘要由CSDN通过智能技术生成