Selenium 操作表单元素、行为链、操作Cookie和页面等待
Selenium是一种自动化测试工具,它可以模拟用户的交互行为,如点击、输入、滚动等。本文将介绍如何使用Selenium操作表单元素、行为链、操作Cookie和页面等待。
操作表单元素
表单元素通常包括文本框、下拉框、单选框和复选框等。使用Selenium可以很方便地操作这些表单元素。
文本框
操作文本框需要先定位到该元素,然后使用send_keys()
方法输入文本内容,示例代码如下:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("")
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("")
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("")
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("")
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("")
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("")
cookie = {
"name": "user",
"value": "John",
"domain": ".baidu.com"
}
driver.add_cookie(cookie)
删除Cookie
删除Cookie需要先定位到指定的Cookie,然后使用delete_cookie()
方法将Cookie从浏览器中删除,示例代码如下:
driver = webdriver.Chrome()
driver.get("")
driver.delete_cookie("user")
获取Cookie
获取Cookie需要使用get_cookies()
方法获取所有的Cookie信息,或使用get_cookie()
方法获取指定的Cookie信息,示例代码如下:
driver = webdriver.Chrome()
driver.get("")
cookies = driver.get_cookies()
print(cookies)
cookie = driver.get_cookie("user")
print(cookie)
页面等待
页面等待可以确保页面元素已经加载完成,以避免因元素未加载完成而导致的操作失败。使用Selenium可以很方便地实现页面等待。
强制等待
强制等待需要使用time.sleep()
方法暂停脚本的执行,示例代码如下:
import time
driver = webdriver.Chrome()
driver.get("")
time.sleep(5)
隐式等待
隐式等待使用implicitly_wait()
方法设置等待时间,如果元素未在等待时间内加载完成,将抛出NoSuchElementException
异常,示例代码如下:
driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.get("")
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("")
search_box = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "kw"))
)
search_box.send_keys("Selenium")
以上就是Selenium操作表单元素、行为链、操作Cookie和页面等待的全部内容,希望对您有所帮助!
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
上一期我们分享了正则解析的OneTake方式,比如解析mac、arp等。其实我们也可以解析version、型号、系列等单个指标信息。在全文里一次查找,都不需要将文本分行切割。 今天我们分享一种解析的思路——分而治之,带大家一起边讲边写,希望大家跟着我的思路走。…