用Selenium+python编写自动测试脚本,因为页面中内容编辑使用ckEditor富文本编辑,不知道如何输入内容。
方法一:执行JS脚本,ckEditor编辑区内容输入成功,校验提示内容为空
通过上网查找,一种方法是使用Selenium执行JavaScript脚本的方法修改富文本编辑区的内容。
由于富文本编辑器都包含iframe,所为第一步首先是切换frame:
driver.switch_to.frame(driver.find_element(By.CLASS_NAME, 'cke_wysiwyg_frame'))
然后执行JavaScript脚本:
test_js = 'document.body.innerHTML="%s"' % ("测试切换frame能否实现富文本编辑")
driver.execute_script(test_js)
测试后发现富文本编辑区内容是发生了变化,但是对应的编辑内容校验总是通不过。
方法二:将sendKeys用于ckeditor文本区域的body对象
于是使用第二种方法通过对富文本编辑区中的body进行sendKey()的方式进行内容输入,具体代码实现如下:
driver.switch_to.frame(driver.find_element(By.TAG_NAME, 'iframe'))
content_body = driver.find_element(By.TAG_NAME, 'body')
content_body.send_keys(content)
执行完成后不要忘记再返回frame的上层内容页面。代码如下:
self.driver.switch_to.default_content()
这种方式解决了ckEditor富文本内容输入成功通过内容的校验。
参考网文:
selenium编辑器输入 https://www.cnblogs.com/simon1993/p/16353435.html
Python自动化输入文本selenium自动化测试在富文本中输入信息的方法 https://blog.csdn.net/Ghjkku/article/details/123707485
java中sendkeys_javascript – 如何使用java selenium将sendKeys用于ckeditor文本区域
https://blog.csdn.net/weixin_39874379/article/details/114784651
标签:body,文本编辑,时富,frame,driver,内容,Selenium,输入 From: https://www.cnblogs.com/xupeixuan/p/16708952.html