莫愁前路无知己,天下谁人不识君。。。。

python+selenium精华知识之一------上传与定位(富本文本框)

上一篇 / 下一篇  2017-09-06 14:22:41 / 个人分类:测试技巧

A.上传文件:
1、input标签类元素文件上传
先定位到文件上传元素id,再使用方法send_keys(文件路径)
driver.find_element_by_name(‘name’).sendkeys(‘e:\\123.txt’)
2、非input标签
备注:非input标签的文件上传,就不适用于此方法了,需要借助autoit工具或者SendKeys第三方库。
3、使用sendkeys库实现文件上传
首先安装库:pip install sendkeys
实现上传:首先定位到上传按钮并点击按钮弹出os框
其次SendKeys.SendKeys(file)    #参数为上传文件路径
SendKeys.SendKeys('{ENTER}')  #参数为ENTER表示键盘enter建

B.含有富本编辑文本框定位
方法一:
如果iframe有ID,首先应该使用js去实现,代码如下:
 set = 'document.getElementById("content_ifr").contentWindow.document.body.innerHTML="%s"' %(content)
driver.execute_script(set)
content_ifr:iframe的ID
innerHTML也可以使用innerText
方法二:
如果没有id
js="document.getElementsByClassName(\"wind_editor_iframe\")
[0].contentWindow.document.body.innerHTML=\"%s\"" %("内容")
driver.execute_script(js)
请注意这里使用的是getElementsByClassName,因为该富文本编辑器所在的iframe没有id
方法三:(有时候不一定可以)
找文本框body,即可以输入内容的地方(id,或name)
driver.switch_to.frame("framename")
driver.find_element_by_id("tinymce").send_keys(Keys.TAB)
driver.find_element_by_id("tinymce").send_keys(u’你是’)
方法四:(CKEditor编辑器)
seteditor = 'window.frame_editor.getUe().setContent("%s")' %(123456)
self.driver.execute_script(seteditor)
注:编辑器不一样,其封装方法也不同,F12中可查找具体方法。
方法五:(运用frame,进进出出)----万能方法,框架有几个,跳几个
driver.switch_to_frame('frame_editor')
driver.switch_to_frame('ueditor_0')
driver.find_element_by_tag_name('body').send_keys(123456)
driver.switch_to_default_content()
driver.switch_to.frame('frame_bid_notice')

TAG: Python python 自动化测试

 

评分:0

我来说两句

Open Toolbar