有些时候,我们在定位一个元素的时候,不管用xpath还是css都无法定位到这个元素,这时候我们需要考虑到用js的方式来进行定位,这就必须掌握一点js的知识。今天就和大家分享一个这样例子。
在wordPress上发布自己的第一篇文章,操作步骤:文章——》写文章
从界面看,主要需要实现标题和文章内容的写入,以及最后的发布操作。
(1)标题
用之前文章介绍的方法,很容易可以定位到标题,并向其中写入标题内容
title = 'first post' + str(time.time())self.dr.find_element_by_id("title").send_keys(title)
(2)发布按钮
同样可以很简单的定位到
self.dr.find_element_by_id("publish").click()
(3)文章内容框定位
这一块的定位用我们平时定位的方法无法定位到,这里就需要使用到js定位了。
可以看到,内容编辑框是在一个iframe表格中,先获取到这个iframe,再获取其里面的window对象,获取到window对象后就可以在里头插入内容。代码如下:
js = 'document.getElementById("content_ifr").contentWindow.document.body.innerHTML="%s"' % (content)self.dr.execute_script(js)
解释:
a)document.getElementById("content_ifr")是获取iframe
b)contentWindow是获取到iframe里的window对象,所以后边可以接document
c)body.innerHTML是设置或返回表格行的开始和结束标签之间的 HTML,即相当于写入内容到HTML中
最后还是上代码吧!!!(这里把登录方法,和js定位内容分别写了方法,便于大家理解)