selenium 相关的API
Selenium 相关的API非常丰富,涵盖了浏览器操作、元素定位、元素操作、等待机制、键盘与鼠标事件等多个方面。以下是对Selenium常用API的详细归纳:
一、浏览器操作
- 初始化浏览器
- 使用WebDriver的实例化方法(如ChromeDriver、FirefoxDriver等)来启动浏览器。
- 示例代码:
driver = webdriver.Chrome()
- 访问URL
- 使用
get()
方法访问指定的URL。 - 示例代码:
driver.get('https://www.baidu.com')
- 使用
- 浏览器窗口操作
- 最大化窗口:
driver.maximize_window()
- 最小化窗口:
driver.minimize_window()
(注意:并非所有浏览器都支持此操作) - 设置窗口大小:
driver.set_window_size(width, height)
- 获取窗口大小:
driver.get_window_size()
- 设置窗口位置:
driver.set_window_position(x, y)
- 获取窗口位置:
driver.get_window_position()
- 最大化窗口:
- 浏览器前进与后退
- 前进:
driver.forward()
- 后退:
driver.back()
- 前进:
- 关闭浏览器
- 关闭当前标签页:
driver.close()
- 关闭整个浏览器:
driver.quit()
- 关闭当前标签页:
- 刷新页面
driver.refresh()
- 截图
- 保存截图为文件:
driver.get_screenshot_as_file('screenshot.png')
- 获取截图为二进制数据:
driver.get_screenshot_as_png()
- 保存截图为文件:
二、元素操作
- 点击元素
element.click()
- 输入文本
element.send_keys('text')
- 清除文本
element.clear()
- 获取元素文本
text = element.text
- 提交表单
- 如果元素是表单或表单内的元素,可以使用
element.submit()
来提交表单。
- 如果元素是表单或表单内的元素,可以使用
- 获取元素属性
attribute_value = element.get_attribute('attribute_name')
- 判断元素是否可见
is_visible = element.is_displayed()
三、等待机制
- 显式等待
- 使用
WebDriverWait
结合expected_conditions
来实现条件等待。 - 示例代码:
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, 'kw')))
- 使用
- 隐式等待
- 设置WebDriver在查找元素时的最长等待时间。
- 示例代码:
driver.implicitly_wait(10)
四、键盘与鼠标事件
- 键盘事件
- 使用
Keys
类来模拟键盘操作,如send_keys(Keys.ENTER)
。
- 使用
- 鼠标事件
- 使用
ActionChains
类来模拟复杂的鼠标行为,如点击、双击、拖拽等。 - 示例代码:
ActionChains(driver).click(element).perform()
- 使用
定位元素原理
1)CSS选择器定位元素
就是一个语法
类选择器:.class值(s_ipt)
id选择器:#id的值(#kw)
父类选择器 子类选择器:父类选择器表达时【空格】子类选择器表达式(#s_kw_wrap #kw)
标签选择器 :标签名(form)
2)xpath定位元素
xpath是一个语法
绝对路径:通过/开头(不常用)
相对路径:通过//开头
- 相对路径+索引://form/span[1]/input
2.相对路径+属性值://input[@class="s_ipt"]
3.相对路径+通配符://*[@*="s_ipt"]
4.相对路径+文本匹配//span[text()=“秦都”]