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和页面等待的全部内容,希望对您有所帮助!


相关文章
|
3月前
|
前端开发 测试技术 UED
使用Selenium WebDriver模拟用户操作防止滑动条验证
在进行Web自动化测试时,经常会遇到各种前端验证机制,如滑动条验证,这些机制设计用来防止自动化脚本模拟用户行为。在本文中,我们将探讨如何使用Selenium WebDriver来模拟用户操作,以规避这些验证机制。
|
4月前
|
Java 测试技术 Python
《手把手教你》系列技巧篇(三十六)-java+ selenium自动化测试-单选和多选按钮操作-番外篇(详解教程)
【4月更文挑战第28天】本文简要介绍了自动化测试的实战应用,通过一个在线问卷调查(&lt;https://www.sojump.com/m/2792226.aspx/&gt;)为例,展示了如何遍历并点击问卷中的选项。测试思路包括找到单选和多选按钮的共性以定位元素,然后使用for循环进行点击操作。代码设计方面,提供了Java+Selenium的示例代码,通过WebDriver实现自动答题。运行代码后,可以看到控制台输出和浏览器的相应动作。文章最后做了简单的小结,强调了本次实践是对之前单选多选操作的巩固。
46 0
|
1月前
|
JavaScript Python
[selenium]取值元素文本属性样式
[selenium]取值元素文本属性样式
|
2月前
|
测试技术 API Android开发
《手把手教你》系列基础篇(九十七)-java+ selenium自动化测试-框架设计篇-Selenium方法的二次封装和页面基类(详解教程)
【7月更文挑战第15天】这是关于自动化测试框架中Selenium API二次封装的教程总结。教程中介绍了如何设计一个支持不同浏览器测试的页面基类(BasePage),该基类包含了对Selenium方法的二次封装,如元素的输入、点击、清除等常用操作,以减少重复代码。此外,页面基类还提供了获取页面标题和URL的方法。
62 2
|
3月前
|
存储 安全 测试技术
《手把手教你》系列技巧篇(六十三)-java+ selenium自动化测试 - cookie -上篇(详细教程)
【6月更文挑战第4天】本文介绍了Cookie和Session的概念及其用途。Cookie是服务器发送到浏览器并存储在本地的小型文本文件,用于记录用户信息,如登录状态。它分为会话Cookie(关闭浏览器即消失)和永久Cookie(设置过期时间)。Session则是在服务器端保存用户状态的一种方式,比Cookie更安全,但会占用服务器资源。Selenium提供了操作Cookie的API,包括添加、删除和获取Cookie。文章还提到了Cookie的优缺点,如大小限制和潜在的安全风险。
80 1
《手把手教你》系列技巧篇(六十三)-java+ selenium自动化测试 - cookie -上篇(详细教程)
|
3月前
python+Pycharm+selenium操作浏览器(Chorme或Edge)
python+Pycharm+selenium操作浏览器(Chorme或Edge)
|
3月前
|
数据采集 Web App开发 前端开发
Selenium:自动化Web浏览器操作的强大工具
**Selenium** 是一款用于自动化Web应用测试和模拟用户行为的工具,支持多种浏览器和编程语言。安装包括安装Selenium库和对应浏览器的WebDriver。基本用法包括导入库、启动浏览器、查找与操作页面元素、等待元素加载及关闭浏览器。在实际项目中,Selenium常用于Web测试、爬虫、自动化表单填写等,优点是跨平台、模拟真实用户行为,但性能较低且依赖浏览器。
83 9
|
3月前
|
JavaScript Java 测试技术
《手把手教你》系列技巧篇(七十一)-java+ selenium自动化测试-自定义类解决元素同步问题(详解教程)
【6月更文挑战第12天】本文介绍了如何创建一个自定义类库来解决自动化测试中的元素同步问题。作者指出,大部分错误源于元素因时间不同步而引发,为此提供了一种解决方案。在项目实践中,首先在`library`包下创建名为`MyWait`的类,包含一个方法`isElementPresent`,该方法通过循环尝试并等待指定元素出现,避免了直接使用时间等待可能导致的不准确性。之后,在测试类中调用此自定义方法,成功实现了元素同步。代码示例展示了如何在Java+Selenium自动化测试中应用这个自定义类。
52 2
|
3月前
|
测试技术 Python
《手把手教你》系列技巧篇(六十五)-java+ selenium自动化测试 - cookie -下篇(详细教程)
【6月更文挑战第6天】本文介绍了如何使用WebDriver进行浏览器cookie的操作。
32 4
|
4月前
|
JavaScript 前端开发 Java
《手把手教你》系列技巧篇(四十九)-java+ selenium自动化测试-隐藏元素定位与操作(详解教程)
【5月更文挑战第13天】本文主要讨论了在Selenium自动化测试中如何处理前端隐藏元素的问题。隐藏元素通常是通过`type="hidden"`或`style="display: none;"`属性实现的,它们在页面上不可见,但仍然存在于HTML代码中。Selenium可以定位到这些隐藏元素,但无法直接进行点击、输入等操作,会报错“ElementNotInteractableException”。
77 3