zoukankan      html  css  js  c++  java
  • python自动化对元素的处理

     Select提供了三种选择方法:

    select_by_index(index) ——通过选项的顺序,第一个为 0

    select_by_value(value) ——通过value属性

    select_by_visible_text(text) ——通过选项可见文本

    Select提供了四种方法取消选择:

    deselect_by_index(index)

    deselect_by_value(value)

    deselect_by_visible_text(text)

    deselect_all()

    Select提供了三个属性方法提供信息:

    options ——提供所有的选项的列表,其中都是选项的WebElement元素

    all_selected_options ——提供所有被选中的选项的列表,其中也均为选项的WebElement元素

    first_selected_option ——提供第一个被选中的选项,也是下拉框的默认值

    selenium中对事件的处理

    1、鼠标事件:
    # 每个模拟事件后需加.perform() 才会执行
    # context_click() 右击
    # double_click() 双击
    # drag_and_drop(source, target) 拖动
    # move_to_element() 鼠标悬停
    # move_to 移动

     

    from selenium import webdriver
    from selenium.webdriver.common.action_chains import ActionChains
    driver = webdriver.Firefox()

    # move_to 移动
    # 定位到元素的源位置
    ele = driver.find_element_by_link_text('新闻')
    # 将鼠标移动到定位的元素上面
    ActionChains(driver).move_to_element(ele).perform()

     

    # 鼠标拖放操作:drag_and_drop(source, target)
    # source: 鼠标拖动的源元素。
    # target: 鼠标释放的目标元素。

    # 定位元素的源位置
    element = driver.find_element_by_id("xxx")
    # 定位元素要移动到的目标位置
    target = driver.find_element_by_id("xxx")
    # 执行元素的拖放操作
    ActionChains(driver).drag_and_drop(element, target).perform()

     

    2、键盘事件
    # send_keys(Keys.BACK_SPACE) 删除键(BackSpace)
    # send_keys(Keys.SPACE) 空格键(Space)
    # send_keys(Keys.TAB) 制表键(Tab)
    # send_keys(Keys.ESCAPE) 回退键(Esc)
    # send_keys(Keys.ENTER) 回车键(Enter)
    # send_keys(Keys.CONTROL,'a') 全选(Ctrl+A)
    # send_keys(Keys.CONTROL,'c') 复制(Ctrl+C)
    # send_keys(Keys.CONTROL,'x') 剪切(Ctrl+X)
    # send_keys(Keys.CONTROL,'v') 粘贴(Ctrl+V)
    # send_keys(Keys.F1) 键盘F1
    # ……
    # Send_keys(Keys.F5)键盘F5
    # …
    # send_keys(Keys.F12) 键盘F12


    from selenium import webdriver
    # 导入Keys 模块
    from selenium.webdriver.common.keys import Keys
    driver = webdriver.Firefox()
    driver.get("http://www.baidu.com")
    # 输入框输入内容
    driver.find_element_by_id("kw").send_keys("seleniumm")
    # Backspace键(删除输入的内容)
    driver.find_element_by_id('kw').send_keys(Keys.BACK_SPACE)
    # 如键盘的F5刷新
    driver.find_element_by_id('kw').send_keys(Keys.F5)
    # 输入空格键+“教程”
    driver.find_element_by_id("kw").send_keys(Keys.SPACE)
    driver.find_element_by_id("kw").send_keys(u"教程")
    # ctrl+a 全选输入框内容
    driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'a')
    # ctrl+x 剪切输入框内容
    driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'x')
    # ctrl+v 粘贴内容到输入框
    driver.find_element_by_id("kw").send_keys(Keys.CONTROL, 'v')

    selenium中对弹框的处理

    text=driver.find_element_by_xpath("/html/body/div/h2/input[1]").click()

    alter = driver.switch_to_alert()

    alter.text #返回弹框文本

    alter.accept() ## 弹框之后确认

    alter.dismiss()## 弹框之后取消

    alter.send_keys("yes") ## 弹框输入的内容

    time.sleep(2)

    '''

    driver.find_element_by_xpath('/html/body/div/h2/input[1]').click()

    dialog_box = driver.switch_to_alert()

    time.sleep(2)

    dialog_box.send_keys("yes")

    dialog_box.accept()

    print (driver.find_element_by_xpath('//*[@id="textSpan"]/font').text)  #获取确认弹窗结果

    time.sleep(2)

    driver.find_element_by_xpath('/html/body/div/h2/input[1]').click()

    dialog_box = driver.switch_to_alert()

    time.sleep(2)

    dialog_box.dismiss()  #关闭对话框

    print (driver.find_element_by_xpath('//*[@id="textSpan"]/font').text)  #获取关闭弹窗结果

    time.sleep(2)

    driver.quit()

    selenium中对frame的处理

     iframe有name或id值

    self.driver.switch_to.frame('iframe-name-id')

    # iframe没有name或id值

     

    xf = self.driver.find_element_by_xpath('//iframe[@allowtransparency="true"]')

    self.driver.switch_to.frame(xf)

    # 跳出当前iframe

    self.driver.switch_to.parent_frame()

    # 返回最外层iframe

    self.driver.switch_to.default_content()

    selenium对js的处理

             driver.execute()_script(js代码)

    selenium中对滚动条的处理

     
    #将页面滚动条拖到底部

    js = "var q=document.documentElement.scrollTop=10000"

    driver.execute_script(js)

    time.sleep(3)

    #将滚动条移动到页面的顶部

    js = "var q=document.documentElement.scrollTop=0"

    driver.execute_script(js)

    time.sleep(3)

    driver.quit()

     

     

     

     

    python 链接mysql数据库:

     

          数据库连接

    安装mySQLDB:

    首先,在python2.7中用到import mysqldb的时候,提示你缺少这个模块,那么你需要pip install mysql-python,但使用windows系统在pip这个模块的时候可能会出现一些问题,如下:

    用pip install mysql-python出现问题

    (1)出现缺少Microsoft VC++ 9.0的问题,是缺少对于python2.7的c语言的编译解释器

    用VCForPython27这个工具可以解决这个问题

    (2)出现Cannot open include file: 'config-win.h': No such file or directory这个问题,是缺少MySQL-python-1.2.5-py2.7这个第三方类库,安装之后可以解决

    (3)在使用python的第三方类库的时候,会出现python2.7不在注册表内,报错:python version 2.7 required,which was not found。是因为两种原因,一种是没有配置python的环境变量,他真的不在注册表里面,另一种这是因为,python和第三方类库不都是32位或64位。所以要统一格式

    比如:

    MySQL-python-1.2.3.win32-py2.7

    MySQL-python-1.2.5.win-amd64-py2.7

    上面的是32位,下面的是64位

    (1)(2)(3)方案解决方案中的工具在我的云盘分享的连接里可以下载到

    链接:https://pan.baidu.com/s/1_GvIWoJByOyIyTYvDfADPQ 密码:q1ql

                       

  • 相关阅读:
    二分法查找递归方式()
    JDBC操作MySQL(crud)
    (转)JAVA中的权限修饰符
    抽象类和接口(面试题总结)
    java基础-集合
    Java泛型通配符以及限定
    div中嵌套的多个div使用了浮动后居中的办法
    将博客搬至CSDN
    (补)Java解析XML之dom4j
    Java单元测试
  • 原文地址:https://www.cnblogs.com/yuchne/p/10823628.html
Copyright © 2011-2022 走看看