selenium webdriver 不识别showModalDialog()的处理方案
来源:互联网 发布:知及之仁不能守之 编辑:程序博客网 时间:2024/05/16 17:41
2.1 使用js模拟打开窗口,可以正常操作新打开窗口的元素对象以及测试工
> 作,但是新窗口操作后的值无法传递给旧窗口。
> js='window.open("https://developer.mozilla.org/samples/domref/showModalDialogBox.html",\
> "","help:Yes;dialogWidth:500px;dialogHeight:500px;");'
> driver.execute_script(js)
> print '新%s',driver.window_handles
> driver.switch_to_window(driver.window_handles[-1])
> driver.find_element_by_id('foo').send_keys('ddd')
> driver.find_element_by_xpath('/html/body/input[2]').click()
2.2 使用pywin32发送系列键盘事件
focusJs="""
var bb=document.getElementsByTagName("input")[0].focus();"""
driver.execute_script(focusJs)
import time
time.sleep(1)
#发送Enter操作,差开webdriver的线程
win32api.keybd_event(13,0,0,0)#发送Enter键
win32api.keybd_event(13,0,win32con.KEYEVENTF_KEYUP,0)#释放按键
time.sleep(1)
print '最新的',driver.window_handles
# #获得当前打开的浏览器最上一层窗口的句柄
# open_handles=win32gui.FindWindow('MozillaWindowClass',None)
# open_title=win32gui.GetWindowText(open_handles)
2.3 执行js的click方法(最佳)
JJ="""setTimeout(function(){document.getElementsByClassName("afterimg")[0].click()},100)"""
driver.execute_script(JJ)
time.sleep(5)
print '新%s',driver.window_handles
driver.switch_to_window(driver.window_handles[-1])
print "handle:",driver.current_window_handle
- selenium webdriver 不识别showModalDialog()的处理方案
- selenium webdriver学习(5)-iframe的处理
- selenium webdriver学习(五)------------iframe的处理
- Selenium Webdriver 处理隐藏元素的问题
- selenium webdriver对iframe的处理
- selenium+webdriver:不支持导出iframe的处理
- selenium webdriver学习--------iframe的处理
- selenium webdriver对下拉框的处理
- Selenium WebDriver 处理cookie
- Selenium WebDriver 处理cookie
- selenium webdriver学习(十六)----------用selenium webdriver实现selenium RC中的类似的方法
- selenium webdriver学习(十六)----------用selenium webdriver实现selenium RC中的类似的方法
- selenium webdriver 你所不知道的quit 和close
- selenium webdriver 你所不知道的quit 和close
- selenium-webdriver(python) -- cookie处理
- Selenium Webdriver处理富文本框
- Selenium Webdriver处理iFrame之间的切换问题
- selenium(webdriver)--不同浏览器处理SSL Certificate Error的方法
- 重载操作符
- 用Cmake编译调用Qxt,Qwt和Qserialport
- 如何使用Log4j?
- mt.exe : general error c101008d 解决方法
- cvCopy与cvCloneImage的区别
- selenium webdriver 不识别showModalDialog()的处理方案
- poj 3648 Wedding
- iphone5适配
- FindString(char *source, char *pattern)
- iOS多线程编程指南(四)线程同步
- 浅析Python装饰器
- JAVA写加密算法(FFS)
- spring事务,ORA-01456: 不能在 READ ONLY 事务处理中执行插入/删除/更新操作
- MySQL中INSERT IGNORE INTO和REPLACE INTO的使用