我正在使用QWebView和python创建一个自动化应用程序,我可以通过标记和id选择Qwebelements,点击按钮也很容易,但我不能执行以下操作-单击标记为"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 group text area"这样的聚焦文本区域元素,请使用"txtarea.evalateJavaScript("this.focus()")而不是"this.click()"这对我有效