selenium+python

selenium

八大查找元素

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

# 创建一个 WebDriver 实例
driver = webdriver.Chrome()

# 打开网页
driver.get("https://www.baidu.com/")

# 使用 find_element 方法查找元素
element = driver.find_element(By.ID, "kw")

element.click()
element.send_keys("")
element.clear()

element = driver.find_element(By.NAME, "wd")

element = driver.find_element(By.CLASS_NAME, "s_ipt")

element = driver.find_element(By.TAG_NAME, "tag_name")

element = driver.find_element(By.LINK_TEXT, "新闻")

element = driver.find_element(By.PARTIAL_LINK_TEXT, "新")

element = driver.find_element(By.CSS_SELECTOR, "css_selector")

element = driver.find_element(By.XPATH, "//*[@id='kw']")

在这里插入图片描述

driver.find_elements()用法

在这里插入图片描述

三种等待

# 强制等待
time.sleep(10)
# 隐式等待,最多等10s,如果元素2s查找到了停止等待;一次设置,全局作用
driver.implicitly_wait(10)
# 显示等待
wait = WebDriverWait(driver, 10)
# 判断一个元素是否可点击
login_button = wait.until(EC.element_to_be_clickable((By.XPATH, "//button[contains(text(), '登录')]")))
# 判断页面上是否存在某个元素
username_input = wait.until(EC.presence_of_element_located((By.XPATH, "//input[@name='username']")))

获取标签属性名的值

element = driver.find_element(By.NAME, "wd")
element.get_attribute("class")
# 获取文本信息
driver.find_element(By.LINK_TEXT,"新闻").text

进入frame框架

# 比如<frame name="haha">
driver.switch_to.frame("haha")

出框架

driver.switch_to.default_content()

多选框

sel = Select(driver.find_element(By.NAME,"select_name"))
# 假如<option value="1"></option>
sel.select_by_value("1")

# <option value="1">哈哈</option>
sel.select_by_visible_text("哈哈")

sel.select_by_index(3)

弹窗

# alert(只有确认),confirm(有确认有取消),prompt(有确认有取消,可以输入值)
ale = driver.switch_to.alert
# 确认弹窗
ale.accept()
# 取消弹窗
ale.dismiss()
# 获取弹窗文本
strs = ale.text

文件上传

driver.find_element(By.XPATH,"").send_keys(r"D://")

JS

# 使用scrollBy()方法向下滚动1000像素
# js = "window.scrollBy(0, 1000)"
# driver.execute_script(js)

js = "var q=document.documentElement.scrollTop=2000"
driver.execute_script(js)
time.sleep(5)
js = "var q=document.documentElement.scrollTop=0"
driver.execute_script(js)
time.sleep(5)

DDT

在这里插入图片描述

封装PO模式

base类
在这里插入图片描述
登录类
在这里插入图片描述
商品列表类
在这里插入图片描述

testcase类
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值