selenium一些经常用的函数

  1. 有界面运行
driver = webdriver.Chrome(r"浏览器驱动文件路径")
  1. 无界面运行
chrome_opt = Options()      # 创建参数设置对象.
chrome_opt.add_argument('--headless')   # 无界面化.
chrome_opt.add_argument('--disable-gpu')    # 配合上面的无界面化.
chrome_opt.add_argument('--window-size=1366,768')   # 设置窗口大小, 窗口大小会有影响.
# 创建Chrome对象并传入设置信息.
driver = webdriver.Chrome(chrome_options=chrome_opt)  
  1. driver.implicitly_wait(30) 设置最长等待时间30秒(隐式等待)WebDriverWait(driver,30).方法(显示等待)
  2. driver.maximize_window()
  3. self.assertIn("Python", driver.title) 确定标题或其他文本是否含有"Python"这个字符串
  4. element.send_keys("python", Keys.ARROW_DOWN) 可以做一系列操作,比如键盘快捷键输入,发送文件路径等,清除输入的文本用element.clear()
  5. 处理选择框
from selenium.webdriver.support.ui import Select
select = Select(driver.find_element_by_name('name'))
select.selct_by_index(index)
select.select_by_visible_text("text")
select.select_by_value(value)
  1. 取消已经选中的选项select = Select(driver.find_element_by_id('id')) select.deselect_all()
  2. 将某个元素拖放到另一个元素上
element = driver.find_element_by_name("source")
target = driver.find_element_by_name("target")

from selenium.webdriver import ActionChains
action_chains = ActionChains(driver)
action_chains.drag_and_drop(element,target).perform() 
  1. 窗口操作
    <a href="somewhere.html" target="windowName">Click here to open a new window</a> href跳转的网址,target新窗口的名字,如果没有target就不会打开新窗口。

打开这个窗口:driver.switch_to_window("windowName")
所有窗口:driver.window_handles
回到父窗口:driver.switch_to_default_content()

  1. 处理对话框:alert = driver.switch_to_alert()
  2. 前进或后退:
driver.forward()
driver.back()
  1. 添加cookies
cookie = {'name':'foo','value':'bar'}
driver.add_cookie(cookie)
获取网页cookies:`driver.get_cookies()`
  1. 元素定位
  2. 用链接文本定位超链接
continue_link = driver.find_element_by_link_text('有超链接的文本')
continue_link = driver.find_element_by_partial_link_text('有超链接的文本的一部分')
  1. 基本异常
  2. 行为链
    调用类:selenium.webdriver.common.action_chains.ActionChains
menu = driver.find_element_by_css_selector("")
hidden_submenu = driver.find_element_by_css_selector("")

ActionChains(driver).move_to_element(menu).click(hidden_submenu).perform()

# actions = ActionChains(driver)
# actions.move_to_element(menu)
# actions.click(hidden_submenu)
# action.perform()
  1. 保持点击状态:click_and_hold(on_element=None) on_element:要点击的元素,如果是None,点击鼠标当前的位置
    双击:double_click(on_element=None)
drag_and_drop(source, target)

鼠标左键点击source元素,然后移动到target元素释放鼠标按键

参数: source:鼠标点击的元素 target:鼠标松开的元素

drag_and_drop_by_offset(source, xoffset,yoffset)

拖拽目标元素到指定的偏移点释放

参数: source:点击的参数 xoffset:X偏移量 * yoffset:Y偏移量

key_down(value,element=None)

只按下键盘,不释放。我们应该只对那些功能键使用(Contril,Alt,Shift)

参数: value:要发送的键,值在Keys类里有定义 element:发送的目标元素,如果是None,value会发到当前聚焦的元素上

key_up(value,element=None)

释放键。参考key_down的解释

move_by_offset(xoffset,yoffset)

将当前鼠标的位置进行移动

参数: xoffset:要移动的X偏移量,可以是正也可以是负 yoffset:要移动的Y偏移量,可以是正也可以是负

move_to_element(to_element)

把鼠标移到一个元素的中间

参数: * to_element:目标元素

move_to_element_with_offset(to_element,xoffset,yoffset)

鼠标移动到元素的指定位置,偏移量以元素的左上角为基准

参数: to_element:目标元素 xoffset:要移动的X偏移量 * yoffset:要移动的Y偏移量

perform()

执行所有存储的动作

release(on_element=None)

释放一个元素上的鼠标按键,

参数: * on_element:如果为None,在当前鼠标位置上释放

send_keys(*keys_to_send)

向当前的焦点元素发送键

参数: * keys_to_send:要发送的键,修饰键可以到Keys类里找到

send_keys_to_element(element,*keys_to_send)

向指定的元素发送键

  1. 警告:selenium.webdriver.common.alert.Alert(driver)

接受和忽略弹框:

Alert(driver).accept()
Alert(driver).dismiss()
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值