selenium基础

以下是整理后的Selenium操作介绍:

基本操作

  • 定位元素
    • 使用By.ID定位:driver.find_element(By.ID,"page-mainIframe"),尽量使用id元素定位。
    • 定位多个元素:driver.find_elements(By.ID,"some_id")
  • 刷新页面:使用refresh()方法刷新当前页面。
  • 等待机制
    • 显式等待:使用WebDriverWait类和expected_conditions模块,如element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "dynamic_id")))
    • 隐式等待:通过implicitly_wait()方法设置,如driver.implicitly_wait(10)
    • 固定等待:使用time.sleep()方法让脚本暂停执行指定时间。
    • Fluent Wait:适用于需要动态调整等待时间的场景。

元素操作

  • 输入文本element.send_keys("text")
  • 点击元素element.click()
  • 清除输入框内容element.clear()
  • 获取元素属性value = element.get_attribute("value"),可获取元素的指定属性值,如valuehrefclass等,还可从网页中提取链接地址、图片URL、文本内容等信息。
  • 复选框/单选框操作:使用is_selected()click()方法,如if not checkbox.is_selected(): checkbox.click()
  • 下拉列表操作:使用Select类的select_by_indexselect_by_valueselect_by_visible_text方法选择下拉列表的选项,如dropdown.select_by_visible_text("China")

高级操作

  • 鼠标操作:使用ActionChains类的clickdouble_clickcontext_clickdrag_and_dropmove_to_elementclick_and_holdrelease等方法执行复杂的鼠标操作。
  • 键盘操作:使用Keys类的send_keys(Keys.KEY_NAME)模拟键盘操作,如element.send_keys(Keys.ENTER)。对于更复杂的键盘操作,可使用ActionChains类和key_downkey_up方法。
  • 文件上传:通过<input type="file">元素的send_keys("file_path")方法上传文件,如element.send_keys("/path/to/file.txt")

窗口操作

  • 打开新窗口driver.execute_script("window.open('URL');")
  • 切换窗口driver.switch_to.window(window_handle)
  • 最大化窗口driver.maximize_window()
  • 设置窗口大小driver.set_window_size(width, height)
  • 全屏模式driver.fullscreen_window()

网页操作

  • 打开网页driver.get(url)
  • 刷新页面driver.refresh()

弹窗处理

  • Alert弹窗:使用driver.switch_to.alert切换到Alert上下文,然后使用accept()方法接受弹窗或使用dismiss()方法关闭弹窗。
  • Confirm弹窗:处理方式同Alert弹窗。
  • Prompt弹窗:使用driver.switch_to.alert切换到Prompt弹窗上下文,然后使用send_keys()输入文本,再使用accept()dismiss()方法处理弹窗。

Cookie操作

  • 添加Cookiedriver.add_cookie(cookie_dict)
  • 获取Cookiedriver.get_cookie(name)driver.get_cookies()
  • 删除Cookiedriver.delete_cookie(name)driver.delete_all_cookies()

JavaScript执行

  • 执行JavaScriptdriver.execute_script(script)
  • 获取JavaScript返回值driver.execute_script("return ...")

iframe切换

  • 切换到iframedriver.switch_to.frame(iframe_element)
  • 切换回主页面driver.switch_to.default_content()

示例代码

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

# 设置Chrome WebDriver
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

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

# 添加Cookie
cookie_dict = {'name': 'test_cookie', 'value': 'test_value', 'domain': 'example.com'}
driver.add_cookie(cookie_dict)

# 获取Cookie
cookie = driver.get_cookie('test_cookie')
print("Cookie:", cookie)

# 获取所有Cookies
cookies = driver.get_cookies()
print("All Cookies:", cookies)

# 删除指定的Cookie
driver.delete_cookie('test_cookie')

# 再次获取所有Cookies,确认'test_cookie'已被删除
cookies_after_deletion = driver.get_cookies()
print("Cookies after deletion:", cookies_after_deletion)

# 删除所有Cookies
driver.delete_all_cookies()

# 再次获取所有Cookies,确认所有Cookies已被删除
cookies_after_all_deletion = driver.get_cookies()
print("Cookies after all deletion:", cookies_after_all_deletion)

# 关闭浏览器
driver.quit()
### Selenium基础教程及功能介绍 Selenium 是一种用于自动化 Web 浏览器操作的工具,广泛应用于 Web 应用程序的功能测试和界面交互。以下是关于 Selenium基础知识、安装方法以及常用功能的详细介绍。 #### 1. Selenium 的核心概念 Selenium 提供了多种工具和库来支持 Web 自动化测试,包括 Selenium WebDriver 和 Selenium IDE 等[^1]。WebDriver 是 Selenium 的主要组件,允许开发者通过编程语言(如 Python、Java 等)控制浏览器行为。它支持多种浏览器,例如 Chrome、Firefox 和 Edge,并且可以模拟真实的用户操作。 #### 2. 安装与配置 在使用 Selenium 前,需要安装相关依赖包。以下是以 Python 为例的安装步骤: ```bash pip install selenium ``` 此外,还需要下载对应浏览器的驱动程序,例如 ChromeDriver 或 GeckoDriver,并确保其路径已添加到系统环境变量中[^2]。 #### 3. Selenium 的基本功能 Selenium 提供了丰富的功能以满足不同的测试需求,主要包括以下几点: - **页面元素查找**:可以通过多种定位方式(如 ID、名称、CSS 选择器、XPath 等)找到页面上的特定元素。 - **模拟用户操作**:支持点击、输入文本、滚动页面等常见操作。 - **执行 JavaScript**:能够直接运行 JavaScript 脚本,从而实现更复杂的页面交互。 - **无界面模式**:通过启用 Headless 模式,可以在没有图形界面的情况下运行浏览器,提高运行效率[^1]。 #### 4. 示例代码 以下是一个简单的 Selenium 使用示例,演示如何打开网页并查找元素: ```python from selenium import webdriver from selenium.webdriver.common.by import By # 初始化浏览器驱动 driver = webdriver.Chrome() # 打开指定的 URL driver.get("https://www.example.com") # 查找页面元素 element = driver.find_element(By.ID, "example_id") print(element.text) # 关闭浏览器 driver.quit() ``` #### 5. 显式等待 为了确保页面加载完成后再进行操作,Selenium 提供了显式等待功能。通过设置超时时间,可以让脚本等待特定条件满足后继续执行[^3]。 ```python from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 设置显式等待 wait = WebDriverWait(driver, 10) element = wait.until(EC.presence_of_element_located((By.ID, "example_id"))) ``` #### 6. 触摸屏操作 对于移动设备的测试,Selenium 提供了 `TouchActions` 模块,支持滑动、点击等触摸屏操作[^2]。以下是一个简单的触摸操作示例: ```python from selenium.webdriver.common.touch_actions import TouchActions # 初始化触摸动作 touch = TouchActions(driver) # 模拟触摸点击 touch.tap(element).perform() ``` #### 7. 扩展功能 除了上述功能外,Selenium 还支持多窗口处理、文件上传、断言验证等高级功能,适用于复杂场景下的自动化测试。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值