Selenium 操作表单元素、行为链、操作Cookie和页面等待

简介: Selenium 操作表单元素、行为链、操作Cookie和页面等待

Selenium 操作表单元素、行为链、操作Cookie和页面等待


Selenium是一种自动化测试工具,它可以模拟用户的交互行为,如点击、输入、滚动等。本文将介绍如何使用Selenium操作表单元素、行为链、操作Cookie和页面等待。


操作表单元素


表单元素通常包括文本框、下拉框、单选框和复选框等。使用Selenium可以很方便地操作这些表单元素。


文本框


操作文本框需要先定位到该元素,然后使用send_keys()方法输入文本内容,示例代码如下:


from selenium import webdriver
driver = webdriver.Chrome()
driver.get("<https://www.baidu.com/>")
search_box = driver.find_element_by_id("kw")
search_box.send_keys("Selenium")


下拉框


操作下拉框需要先定位到该元素,然后使用select_by_value()方法或select_by_visible_text()方法选择指定的选项,示例代码如下:


from selenium.webdriver.support.ui import Select
driver = webdriver.Chrome()
driver.get("<https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_select>")
driver.switch_to.frame("iframeResult")
select_box = Select(driver.find_element_by_tag_name("select"))
select_box.select_by_value("audi")


单选框和复选框


操作单选框和复选框需要先定位到该元素,然后使用click()方法选中或取消选中,示例代码如下:


driver = webdriver.Chrome()
driver.get("<https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_input_checked>")
driver.switch_to.frame("iframeResult")
radio_button = driver.find_element_by_css_selector("input[value='male']")
radio_button.click()
checkbox = driver.find_element_by_css_selector("input[value='Bike']")
checkbox.click()


行为链


行为链可以模拟用户的连续操作,如鼠标移动、鼠标悬停、鼠标拖放等。使用Selenium可以很方便地实现行为链。


鼠标移动和鼠标悬停


操作鼠标移动和鼠标悬停需要先定位到该元素,然后使用move_to_element()方法将鼠标移动到指定元素上,示例代码如下:


from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome()
driver.get("<https://www.baidu.com/>")
setting = driver.find_element_by_xpath("//div[@id='u1']//a[@name='tj_settingicon']")
ActionChains(driver).move_to_element(setting).perform()


鼠标拖放


操作鼠标拖放需要先定位到起始元素和目标元素,然后使用drag_and_drop()方法将起始元素拖拽到目标元素上,示例代码如下:


driver = webdriver.Chrome()
driver.get("<https://jqueryui.com/droppable/>")
driver.switch_to.frame(0)
source = driver.find_element_by_id("draggable")
target = driver.find_element_by_id("droppable")
ActionChains(driver).drag_and_drop(source, target).perform()


操作Cookie


操作Cookie可以模拟用户对网站的登录状态进行管理,如添加、删除和获取Cookie等。使用Selenium可以很方便地操作Cookie。


添加Cookie


添加Cookie需要先创建一个Cookie对象,然后使用add_cookie()方法将Cookie添加到浏览器中,示例代码如下:


driver = webdriver.Chrome()
driver.get("<https://www.baidu.com/>")
cookie = {
    "name": "user",
    "value": "John",
    "domain": ".baidu.com"
}
driver.add_cookie(cookie)


删除Cookie


删除Cookie需要先定位到指定的Cookie,然后使用delete_cookie()方法将Cookie从浏览器中删除,示例代码如下:


driver = webdriver.Chrome()
driver.get("<https://www.baidu.com/>")
driver.delete_cookie("user")


获取Cookie


获取Cookie需要使用get_cookies()方法获取所有的Cookie信息,或使用get_cookie()方法获取指定的Cookie信息,示例代码如下:


driver = webdriver.Chrome()
driver.get("<https://www.baidu.com/>")
cookies = driver.get_cookies()
print(cookies)
cookie = driver.get_cookie("user")
print(cookie)


页面等待


页面等待可以确保页面元素已经加载完成,以避免因元素未加载完成而导致的操作失败。使用Selenium可以很方便地实现页面等待。


强制等待


强制等待需要使用time.sleep()方法暂停脚本的执行,示例代码如下:


import time
driver = webdriver.Chrome()
driver.get("<https://www.baidu.com/>")
time.sleep(5)


隐式等待


隐式等待使用implicitly_wait()方法设置等待时间,如果元素未在等待时间内加载完成,将抛出NoSuchElementException异常,示例代码如下:


driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.get("<https://www.baidu.com/>")
search_box = driver.find_element_by_id("kw")
search_box.send_keys("Selenium")


显式等待


显式等待需要使用WebDriverWait和expected_conditions模块设置等待条件,直到满足等待条件才继续执行脚本,示例代码如下:


from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get("<https://www.baidu.com/>")
search_box = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.ID, "kw"))
)
search_box.send_keys("Selenium")

以上就是Selenium操作表单元素、行为链、操作Cookie和页面等待的全部内容,希望对您有所帮助!


相关文章
|
7月前
|
存储 搜索推荐 数据挖掘
使用selenium库模拟浏览器行为,获取网页的cookie值
使用selenium库模拟浏览器行为,获取网页的cookie值
|
13天前
|
存储 JavaScript 前端开发
JavaScript DOM 操作:解释一下 cookie、sessionStorage 和 localStorage 的区别。
Cookie是服务器发送至客户端的文本信息,会随每个请求发送回服务器,适合控制会话状态但可能暴露隐私。SessionStorage仅在当前会话中存储数据,关闭浏览器后清除,适合临时存储如登录状态。LocalStorage则持久保存数据,即使关闭浏览器也不会清除,适用于存储长期设置。三种方式各有侧重,应按需求选择。
16 0
|
1月前
|
Web App开发 测试技术
使用selenium轻松实现元素拖拽
本文介绍了如何使用Selenium进行Web自动化测试中的元素拖拽操作。通过`ActionChains`类,我们可以模拟用户拖拽行为,确保测试覆盖到页面布局调整等交互功能。示例代码展示了如何定位元素并执行拖拽,以及在实际场景中改变页面布局的应用。利用Selenium的拖拽功能,可提升自动化测试的真实性和效率。
17 0
|
1月前
|
JavaScript
selenium元素等待及滚动条滚动
selenium元素等待及滚动条滚动
20 2
|
2月前
|
Python
Python selenium 页面滚动
Python selenium 页面滚动
14 0
|
7月前
|
存储 JavaScript
js -cookie的操作
cookie是存储在客户端浏览器中的一段文本信息。
|
3月前
|
Python
python+selenium 判断元素是否存在
python+selenium 判断元素是否存在
37 0
|
4月前
|
存储 JavaScript PHP
什么是cookie,如何设置在浏览器页面关闭后清除cookie
什么是cookie,如何设置在浏览器页面关闭后清除cookie
96 0
|
4月前
|
存储 前端开发 Java
【源码共读】在前端如何操作 Cookie
【源码共读】在前端如何操作 Cookie
61 1
|
5月前
|
存储 JavaScript 前端开发
cookie相关操作
cookie相关操作
34 0

热门文章

最新文章