zoukankan      html  css  js  c++  java
  • selenium基本使用

    selenium基本使用

    浏览器基本操作

    1. 打开浏览器

    chrome = webdriver.Chrome()
    

    2. 进入网页

    chrome.driver.get('url')
    

    3. 关闭浏览器

    chrome.quit()
    chrome.close()
    

    4. 控制浏览器

    操作 方法
    设置窗口大小 chrome.set_window_size(480,800)
    全屏显示 chrome.maximize_window()
    浏览器后退 chrome.back()
    浏览器前进 chrome.forward()
    刷新 chrome.refresh()

    元素定位

    定位方法 使用方法
    id定位 find_element_by_id()

    find_element(By.ID,"")
    name定位 find_element_by_name()

    find_element(BY.NAME,"")
    class定位 find_element_by_class()

    find_element(BY.CLASS,"")
    tag定位 find_element_by_tag_name()

    find_element(BY.TAG_NAME,"")
    link定位 find_element_by_link_text()

    find_element(BY.LINK_TEXT,"")
    partial_link_text定位 find_element_partial_link_text()

    find_element(BY.PARTIAL.LINK_TEXT,"")
    xpath定位 find_element_xpath()

    find_element(BY.XPATH,"")
    css定位 find_element_css_selector()

    find_element(BY.CSS_SELECTOR,"")

    WebElement接口常用方法

    操作 方法
    清除输入框中的内容 clear()
    输入内容 send_keys()
    点击 click()
    提交 submit()
    返回元素的尺寸 size
    返回元素的文本 text
    获取属性值 get_attribute(name)
    is_displayed() 设置该元素是否用户可见

    鼠标事件

    鼠标操作的方法封装在ActionChains 类中,使用前先导入

    from selenium.webdriver import ActionChains 
    

    鼠标操作的常用方法:

    操作 方法
    右击 context_click()
    双击 double_click()
    拖动 drag_and_drop(source,target)
              源元素,目标元素
    悬停 move_to_element()
    perform() 执行所有的ActionChains中存储的行为
    #!/usr/bin/python3
    # -*- condig:utf-8 -*-
    from selenium import webdriver
    from selenium.webdriver.common.action_chains import ActionChains
    import time
    chrome = webdriver.Chrome()
    chrome.get('https://www.baidu.com/')
    right_click = chrome.find_element_by_id('su')
    #执行鼠标操作
    ActionChains(chrome).context_click(right_click).perform()
    

    键盘事件

    键盘操作的方法封装在Keys() 类中,使用前先导入

    from selenium.webdriver.common.keys import Keys
    

    鼠标操作的常用方法:

    操作 方法
    输入 send_keys()
    删除键 send_keys(Keys.BACK_SPACE)
    空格键 send_keys(Keys.SPACE)
    制表键 send_keys(Keys.TAB)
    回退键 send_keys(Keys.ESCAPE)
    回车键 send_keys(Keys.ENTER)
    ctrl+A send_keys(Keys.CONTROL,'a')
    ctrl+C send_keys(Keys.CONTROL,'c')
    ctrl+X send_keys(Keys.CONTROL,'x')
    ctrl+V send_keys(Keys.CONTROL,'v')
    ctrl+F1 send_keys(Keys.CONTROL,'F1')
    ... ...
    ctrl+F12 send_keys(Keys.CONTROL,'F12')
    #!/usr/bin/python3
    # -*- condig:utf-8 -*-
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    import time
    chrome = webdriver.Chrome()
    chrome.get('https://www.baidu.com/')
    chrome.find_element_by_id('kw').send_keys('selenium')
    chrome.find_element_by_id('kw').send_keys(Keys.BACKSPACE)
    

    等待

    1. 强制等待

    import time
    time.sleep(5)
    

    2. 隐式等待

    driver.implicitly_wait(5)
    

    3. 显示等待
    等待某个条件成立时继续执行,否则在达到最大时长时抛出异常(TimeoutException)

    WebDriverWait(driver,timeout,poll_frequency=0.5,ignored_exceptions_None)
    
    driver:浏览器驱动  
    timeout:最长超时时间,s  
    poll_frequency=0.5:检测的时间间隔,默认0.5s  
    ignored_exceptions_None:超时后的异常信息  
    

    WebDriverWait():一般由until()或until_not()方法配合使用
    until(method,message='')
    调用此方法,提供驱动程序作为一个参数,直到返回值为True
    until_not(method,message='')
    调用此方法,提供驱动程序作为一个参数,直到返回值为False

    多框架切换

    switch_to.frame():将当前定位的主题切换frame/iframe
    switch_to.default_content():跳回最外层

    多窗口切换

    switch_to.window()
    current_window_handle:获得当前窗口句柄
    window_handles:返回所有窗口的句柄到当前会话

    警告(弹窗)处理

    switch_to_alert
    text:返回alert/confirm/prompt中的文字信息
    accept():接受现有警告框
    dismiss():解散现有警告框
    send_keys(keysTOSend):发送文本至警告框

    上传下载

    上传文件:
    send_keys上传

    下载文件:(Firefox浏览器)

    fp = webdriver.FirefoxProfile()  
    fp.set_preference("broser.download.folderList",2)  
    fp.set_preference("broser.download.manager.showWhenStarting",False)
    fp.set_preference("broser.download.dir",os.getcwd())
    fp.set_preference("broser.helperApps.neverAsk.saveToDisk","application/octet-stream")
    

    broser.download.folderList
    设置0代表浏览器的默认下载路径,2表示保存到指定目录
    broser.download.manager.showWhenStarting
    是否显示开始:True,False
    broser.download.dir"
    指定保存目录

    窗口截图

    get_screenshot_as_file("保存位置")

    操作Cookie

    操作 方法
    获取所有的cookie信息 get_cookies()
    返回字典的key为“name”的cookie信息 get_cookie(name)
    添加cookie add_cookie(cookie_dict)
    删除cookie delet_cookie(name,optionsString)
    删除所有cookie delete_all_cookies()

    调用JavaScript

    WebDriver提供了execute_script()方法来执行javascript代码

  • 相关阅读:
    使用PLSql连接Oracle时报错ORA-12541: TNS: 无监听程序
    算法7-4:宽度优先搜索
    R语言字符串函数
    notepad++ 正则表达式
    MySQL常用命令
    linux下对符合条件的文件大小做汇总统计的简单命令
    Linux系统下统计目录及其子目录文件个数
    R: count number of distinct values in a vector
    ggplot2 demo
    R programming, In ks.test(x, y) : p-value will be approximate in the presence of ties
  • 原文地址:https://www.cnblogs.com/jingxindeyi/p/12996152.html
Copyright © 2011-2022 走看看