zoukankan      html  css  js  c++  java
  • ruby webdriver处理flash类型的图片上传

    一般的图片上传能用send_keys("图片路径")解决

    但是遇到flash类型的图片上传,send_keys()就无奈了,这时候我们可以引用第三方工具autoit来进行操作

    这边提供一个实例

    #encoding:utf-8
    require 'selenium-webdriver'
    require 'test/unit'
    require 'rubygems'
    require 'win32ole'
    class OpentestCase<Test::Unit::TestCase
        def setup
             @dr = Selenium::WebDriver.for :chrome
             @url ="http://bbs.opentest.cn"
             @dr.get @url
             sleep 1
        end
        def test_should_enter_into_post_page_successfully
             @dr.find_element(:xpath,"//*[@id='category_63']/table/tbody/tr[1]/td[2]/h2/a").click
             sleep 1
             @dr.find_element(:id,'newspecial').click
             @dr.find_element(:id,'subject').send_keys("tim post a message")
             @dr.find_element(:id,'e_attach').click
             @dr.find_element(:id,'SWFUpload_1').click
             at = WIN32OLE.new('AutoItX3.Control')
             #等待窗口出现
             at.WinWait("选择要上载的文件,通过:bbs.opentest.cn", "", 2)
             #等待窗口激活
             at.WinActivate("选择要上载的文件,通过:bbs.opentest.cn")
             sleep 2
             #设置控件文本
             at.ControlFocus( "选择要上载的文件,通过: bbs.opentest.cn", "", "[CLASS:Edit; INSTANCE:1]" )
             at.Send("D:\\image\\1.jpg")
             sleep 2
             #模拟键盘alt+o
             at.Send("!O")
             sleep 2
             @dr.find_element(:id,'attach_confirms').click
             @dr.switch_to.frame('e_iframe')
             @dr.find_element(:xpath,"//body").send_keys("tim post a message")
             @dr.switch_to.default_content
             @dr.find_element(:id,'postsubmit').click
        end
       def test_postpage_title_correctly
        title = @dr.find_element(:id,'thread_subject').text
        assert(title,"tim post a message")
       end
        def teardown
             @dr.close
        end
    end
    
  • 相关阅读:
    【转】strlen和mb_strlen区别(php获得中英文混合字符长度)
    PHP字符串替换的相关方法介绍
    php表单转换textarea换行符的方法
    vue生命周期及其作用
    elemenui点击单行触发样式,选中或不选中复选框
    flutter 介绍和环境搭建
    flutter组件
    tora消息机制(事件监听,触发,取消)
    Promise功能与应用
    CCF CSP 20018031 跳一跳
  • 原文地址:https://www.cnblogs.com/timsheng/p/2719537.html
Copyright © 2011-2022 走看看