selenium自动化模拟

selenium自动化模拟

常规操作

引包

from selenium import webdriver

加载驱动

#加载谷歌驱动
driver = webdriver.Chrome(os.path.join(path,driverName))

定位元素

#通过xpath定位
driver.find_element_by_xpath('xpath表达式')

#通过css选择器定位
driver.find_element_by_css_selector('.UserName')

#通过元素id定位
driver.find_element_by_id('id')

获取元素属性

element = driver.find_element_by_xpath('xpath表达式')
value = element.get_attribute("value")

设置元素属性

element.set_attribute("key","value")

模拟点击

#获取元素
item = driver.find_element_by_css_selector('#UserName')
#触发点击
item.click()

模拟输入

#获取元素
item = driver.find_element_by_css_selector('#UserName')
#触发点击
item.send_keys('输入内容')

模拟输入清除

# 清除输入框内容
driver.find_element_by_id("k").clear()

获取当前url

driver.current_url

获取页面快照

# 获取页面快照
driver.save_screenshot("webPage.png")

页面打开

# get方法会一直等到页面被完全加载,然后才会继续程序
driver.get("http://www.baidu.com/")

执行js脚本

driver.execute_script("window.close();")

窗口控制

控制当前驱动操作的window和frame

注意:点击按钮导致新页面打开,并不会自动切换驱动当前操作的window handler,在父frame中是无法直接操作子frame的元素,需要进行切换操作。

子父框切换

#切换子frame
iframe = driver.find_element_by_xpath('//*[@id="stop"]/iframe')
driver.switch_to.frame(iframe)

#切换父frame
driver.switch_to.parent_frame()

获取窗口处理器

#通过内部window_handles列表变量
driver.window_handles
#获取某一个处理器
driver.window_handles[0]

切换操作窗口(窗口跳转)

#通过窗口处理器进行跳转
driver.switch_to.window(driver.window_handles[0])

获取当前操作窗口

driver.current_window_handle

窗口关闭

#关闭当前窗口,最后一个会关闭浏览器
driver.close()

浏览器关闭

# 关闭浏览器
driver.quit()

页面前进后退

#回到前一页
driver.back()

#前进
driver.forward()

弹窗处理

#确定
driver.switch_to.alert.accept()

页面加载等待

导包

# ui模块里面的WebDriverWait类,用来循环等待
from selenium.webdriver.support.ui import WebDriverWait
#presence_of_element_located类,条件判断
from selenium.webdriver.support.expected_conditions import presence_of_element_located

from selenium.webdriver.common.by import By

等待元素加载

try:
    # 页面等待最多10秒,等待id="myElement"出现,超时抛出异常
    element = WebDriverWait(driver, 10).until(
        expected_conditions.presence_of_element_located((By.ID, "myElement"))
    )

鼠标模拟

引包

#导入ActionChains类
from selenium.webdriver import ActionChains

创建对象

action = ActionChains(driver)

移动到元素

#鼠标移动到元素
action.move_to_element(element).perform()

双击

#鼠标双击
action.move_to_element(element).double_click(element).perform()

单击

#鼠标单击
action.move_to_element(element).click(element).perform()

单击并hold

#鼠标单击并hold住
action.move_to_element(element).click_and_hold(element).perform()

右键单击

#右键单击
action.move_to_element(element).context_click(element).perform()

拖拽

#拖拽元素1到元素2
action.drag_and_drop(element1, element2).perform()

Select操作

导包

#导包方式一
from selenium.webdriver.support.ui import Select
#导包方式二
from selenium.webdriver.support.select import Select

创建对象

# 找到 name 的选项卡
select = Select(driver.find_element_by_id('id'))

选择

select.select_by_index(1)
select.select_by_value("0")
select.select_by_visible_text(u"选项")

遍历选项

for option in select.options:
    value = option.get_attribute("value")

获取第一个被选择的选项

select.first_selected_option

撤销所以选项

select.deselect_all()

Cookies

获取cookies

#返回可迭代对象
driver.get_cookies()

删除

# 通过名字
driver.delete_cookie("CookieName")

# 删除所有
driver.delete_all_cookies()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值