获取由使用 webkitbrowser 注入的 JavaScript 修改的输入文本的值时出错

Error getting value of input text modified by injected javascript with webkitbrowser

本文关键字:文本 输入 出错 修改 JavaScript webkitbrowser 注入 获取      更新时间:2023-09-26

我在Python 2.7中使用WebkitBrower从网页获取输入文本的值时遇到问题。

下面是示例代码:

from webscraping import webkit, xpath
url = 'https://duckduckgo.com/?q=webscraping'
user_agent='Mozilla/5.0 (compatible; MSIE 9.0; TOB 6.11; Windows NT 6.1; WOW64; Trident/5.0; MAAU)'
w = webkit.WebkitBrowser(gui=True,user_agent=user_agent)
w.get(url)
token = xpath.get(w.current_html(), '//input[@id="search_form_input"]/@value')
print token
script = """
$('#search_form_input').val('555555');
"""
w.js(script)
w.wait(2)
token = xpath.get(w.current_html(), '//input[@id="search_form_input"]/@value')
print token

该示例的输出为:

webscraping
webscraping

而不是

webscraping
555555

xpath 工作正常(查找控件),但不返回注入的脚本的修改值。

在显示的网页上,输入被修改。

提前感谢,新年快乐!

我找到了一种方法来做到这一点。

问题出在剧本上...要设置属性值,必须使用"attr"方法完成:

script = """
$('#search_form_input').val('555555');
$('#search_form_input').attr('value','555555');
"""