1

我正在使用 QWebView 和 python 来创建一个自动化应用程序,我可以通过标签和 id 选择 Qwebelements,点击按钮也很容易,但我不能执行以下操作 - 点击带有标签“Textarea”的元素以准备插入数据 -将键发送到 textrea 元素

我可以做些什么来填写表格的代码示例如下,但它不适用于 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()')

#this 在得到上面的按钮元素后

4

2 回答 2

1

元素聚焦:

您正在尝试“聚焦”一个元素,这意味着输入会转到该元素。要集中注意力,试试这个:

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'。这里解释了两者之间的区别。

于 2014-09-08T13:16:27.953 回答
0

对于像“facebook group text area”这样的文本区域元素,使用“txtarea.evaluateJavaScript(”this.focus()”)而不是“this.click()”这对我有用

于 2014-09-08T17:04:39.000 回答