Javascript 如何在Qwebview和python中单击文本区域
我正在使用带有python的QWebView来创建一个自动化应用程序,我可以通过标记和id选择Qwebelements,也可以很容易地单击按钮,但我不能执行以下操作 -单击标记为“Textarea”的元素以准备插入数据 -向textrea元素发送键Javascript 如何在Qwebview和python中单击文本区域,javascript,python,qwebview,qwebelement,Javascript,Python,Qwebview,Qwebelement,我正在使用带有python的QWebView来创建一个自动化应用程序,我可以通过标记和id选择Qwebelements,也可以很容易地单击按钮,但我不能执行以下操作 -单击标记为“Textarea”的元素以准备插入数据 -向textrea元素发送键 page = webview.page().mainFrame() doc = page.documentElement() username = doc.findFirst("input[id=email]") username.setAttrib
page = webview.page().mainFrame()
doc = page.documentElement()
username = doc.findFirst("input[id=email]")
username.setAttribute('value', "user@user.com")
password = doc.findfirst("input[id=pass]")
bt.evaluateJavaScript('this.click()')
下面是我可以填写表单的代码示例,但它不适用于textarea元素
page = webview.page().mainFrame()
doc = page.documentElement()
username = doc.findFirst("input[id=email]")
username.setAttribute('value', "user@user.com")
password = doc.findfirst("input[id=pass]")
bt.evaluateJavaScript('this.click()')
#这是在获得按钮元素后的一个,如上所述的元素聚焦:元素聚焦: 您正试图“聚焦”一个元素,这意味着输入将进入该元素。 要集中注意力,请尝试以下方法:
txtarea = self.documentElement.findFirst('textarea[name="someTextArea"]')
txtarea.evaluateJavascript('this.focus()')
设置属性与属性:
最简单的方法是使用JavaScript设置“textarea”的值(而不是直接设置属性)
例如:
txtarea = self.documentElement.findFirst('textarea[name="someTextArea"]')
txtarea.evaluateJavaScript('this.value="' + yourText + '";')
一些额外的细节:
“setAttribute”不适用于您的原因:
您试图更改名为“value”的属性,而实际上应该更改的是属性的“value”。
两者之间的区别是。对于像“facebook群组文本区域”这样的聚焦文本区域元素,使用“txtarea.evaluateJavaScript(“this.focus()”)而不是“this.click()”)
这对我有效谢谢你的回复,但是setattribute对我有效,我想问的是:当我得到元素时,是单击它,例如facebook群组中的文本区域,我可以找到它,但在尝试单击它时出错,所以它打开了,并且出现了“发布”按钮哦,我想你尝试的是“聚焦”“那么元素。我将编辑我的答案。