python笔记---->selenium

from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
from selenium.webdriver.common.action_chains import ActionChains  # 模拟鼠标悬停
from selenium.webdriver.support.select import Select     #用于定位下拉框

from selenium.webdriver.support.wait import WebDriverWait   #导入WebDriverWait用于设置等待元素页面超时时间和轮询时间
from selenium.webdriver.support import expected_conditions as EC

from selenium.webdriver.common.keys import Keys  #导入keys类用于模拟键盘的按键操作

'''
selenium:
    一、UI自动化常用的控件操作
        1.send_keys():文本框和上传文件
        2.隐藏框定位=====鼠标悬浮:
            ActionChains(driver).move_to_element(ele).perform()    #move_to_element(ele)鼠标移动到指定元素,perform()执行操作
        3.获取页面text文本信息
            driver.find_element(By.XPATH,'//*[@id="s-top-left"]/a[2]').text
        4.弹框操作:告警或者确认框:
            4-1.ele.accept()  点击确认操作
            4-2.ele.dismiss() 取消操作
            4-3.ele.send_keys()  传文件或者输入内容
        5.driver.quit()     关闭浏览器,并关闭启动ChromiumDriver时启动的ChromiumDriver可执行文件
        6.driver.close()    关闭当前窗口

    二、关于窗口的操作   
        1.get_window_size():获取窗口的大小
        2.driver.title:获取窗口的title
        3.获取窗口的句柄:
            3-1.driver.current_window_handle      获取当前窗口句柄
            3-2.driver.window_handles      获取所有窗口句柄  以列表形式返回
        4.返回和刷新操作:
            4-1.driver.back()            返回操作
            4-2.driver.refresh()         刷新窗口
        5.新开一个窗口页面:
            5-1.get():原始页面访问新的一个页面
            5-2.window.open:在原始的基础上在打开一个窗口访问
        6.窗口切换,通过获取所有句柄,使用索引进行切换:
            6-1.driver.switch_to.window(driver.window_handles[-1])          基于第一个网页打开的第一个网页的句柄索引值永远为-1
            6-2.driver.switch_to.window(driver.window_handles[1])           基于第一个网页打开的最后网页的句柄索引值永远为1
        7.下拉框select标签
            7-1.第一种方法定位下拉框 直接定位下拉选择内容的xpath
            7-2.第二种方法定位下拉框:
                ele=driver.find_element(By.XPATH,'/html/body/table/tbody/tr[6]/td[2]/select')  定位下拉框
                Select(ele).select_by_value('3')                                               选择第4个value值
                Select(ele).select_by_visible_text('深圳大学')                                   通过选择下拉框文本内容
                Select(ele).select_by_index(3)                                                  通过索引进行定位,选择下拉内容
        8.滚动条定位
            1.编写js代码:js="window.scrollTo(0,1000)"
                ---->"window.scrollTo(0,1000)"    两个参数,第一参数表示滚动条向右移动的位置,第二个参数表示向下移动的位置
            2.调用js代码:driver.execute_script(js)
    三、selenium中的等待
        1.强制等待:time中的sleep强制等待多少秒执行下面代码,不管页面元素是否加载出来---->sleep(1)
        2.隐试等待:智能等待,作用于全局,最长等待10秒,在10秒内任意时间加载完成都会继续执行代码,超出等待时间抛出异常---->implicitly_wait(10)
        3.显示等待:作用于指定元素,设置超时时间和间隔检测的时间,判断元素是否加载出来,超出等待时间抛出异常
            3-1.until():等待元素加载
            3-2.until_not():等待元素不加载
            3-3.WebDriverWait(driver,10,1)---> 10:超时时间,1:间隔检测时间,超出时间还未加载出来抛出异常:
                WebDriverWait(driver,10,1).until(EC.visibility_of_element_located((By.ID,'kw')))
    
    四、ifrom框定位
        1.先定位iframe框---->iframe=driver.find_element(By.XPATH,'/html/body/div[3]/div[3]/div[1]/div/div[3]/div[1]/div[2]/iframe')
        2.切换iframe框---->driver.switch_to.frame(iframe)                        
        3.碰到多个iframe框时候,通过索引的方式定位iframe框,查看需要切换iframe标签在页面中第几个出现,通过索引来表示----->driver.switch_to.frame(0)
        4.退出iframe():
            4-1.切换焦点到默认帧----->driver.switch_to.default_content()
            4-2.切换焦点到父上下文(上一级),如果是顶级上下文则保持不变----->driver.switch_to.parent_frame()
    
    五、keys类,可以模拟键盘的一些按键操作
        1.driver.find_element(By.ID,'kw').send_keys(Keys.BACK_SPACE)    类似于键盘的Backspace键(退格键)
        2.driver.find_element(By.ID,'kw').send_keys(Keys.CONTROL,'a')   a:全选
        3.driver.find_element(By.ID,'kw').send_keys(Keys.CONTROL,'c')   c:复制   
        4.driver.find_element(By.ID,'kw').send_keys(Keys.CONTROL,'x')   x:剪切 
        5.driver.find_element(By.ID,'kw').send_keys(Keys.CONTROL,'v')   v:粘贴
        ...
        
    

'''
driver = webdriver.Chrome()  # 驱动谷歌浏览器
driver.get('www.baidu.com')
driver.maximize_window()
sleep(3)
driver.quit()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值