zoukankan      html  css  js  c++  java
  • Python使用selenium(二)

    1.selenium鼠标事件

    from selenium import webdriver
    b=webdriver.Firefox()

    url='http://www.baidu.com'
    b.get(url)

    ele=b.find_element_by_id('test')

    from selenium.webdriver.common.action_chains  import  ActionChains

    ActionChains(b) 用于生成模拟用户行为

    perform() 执行存储行为

     将鼠标放到元素上

    ActionChains(b).move_to_element(ele).perform()

    2.键盘事件

    from  selenium.webdriver.common.keys  import Keys

    模拟键盘正常输入字符

    ele.send_keys("asdfj")    使用简单的模拟元素的输入不需要导入上面的包。当输入图片中复杂的组合

    需要导包。

    有时候ele.send_keys()第一次发送字符会失败,不知道什么原因。一般先发送一个空

    ele.send_keys( ‘  ’ )

    send_keys()是元素属性的方法

    Key.ENTER  等是Keys包中的属性

    3.对话框处理及登录测试

    a.对话框窗口处理:(是那种网页中有个聊天的窗口那种)

    通过查找元素找到对话框的关闭元素

    然后元素点击关闭 就关闭了

    b.登录窗口

    查找登录窗口的元素

    输入账户和密码

    查找登录元素,点击登录

    4.多窗口切换

    先访问百度,然后搜索到另外的页面进入

    但是此时打开的是两个窗口,百度窗口和搜索的窗口

    此时可以查看窗口所有的句柄  d.window_handles             返回的是列表

    d.current_window_handle     查看所有句柄

    当有多个窗口在多个窗口中切换

    d.switch_to_window(d.window_handles[1])      切换到特定的窗口

    d.current_url         查看窗口当前的URL

    d.close()   切换到特定窗口后 可以进行窗口关闭

    d.quit()    退出,所有窗口都关闭了

    5.脚本中加入等待的方法

    a.Python本身time模块的sleep方法

    b.selenium 模块中的等待方法

    implicitly_wait()   针对所有的控件查找 找不到超时

    WebDriverWait    针对某一个操作

    d.implicitly_wait(5)    单位是秒        该语句后面的查找元素都满足此规则

    当查找的元素不存在时,查询时间超过5秒才会报错       找到时会立马返回

    from selenium.webdriver.support.ui  import WebDriverWait

    def get_ele_times(driver,times,func)

         return WebDriverWait(driver,times).until(func)         这个方法的返回值就是func的返回值

     此时将之前查找元素的语句ele=b.find_element_by_id('id1')更改为

    ele=get_ele_times(b,10, lambda b:  b.find_element_by_id('id1'))       超时的时间是10秒    只针对该查询

     6.alert对话框处理

    alert弹出框鼠标右击无法检查元素,此时通过其他方法来操作

    alter = b.switch_to_alert()

    alter.accept()

    alter.text     查看弹出框的文本

    alter.dismiss()

  • 相关阅读:
    Tensorflow2(预课程)---7.5、cifar10分类-层方式-卷积神经网络-VGG16
    卷积神经网络之AlexNet
    上传大型视频文件到服务器的控件
    上传大型视频文件到服务器的组件
    上传大型视频文件到服务器的工具
    Nginx上传大型视频文件到服务器,解决方案
    百度WebUploader上传大型视频文件到服务器,解决方案
    WebUploader上传大型视频文件到服务器,解决方案
    html5上传大型视频文件到服务器,解决方案
    jquery上传大型视频文件到服务器,解决方案
  • 原文地址:https://www.cnblogs.com/mayyan/p/10064554.html
Copyright © 2011-2022 走看看