使用webkitbrowser注入javascript修改输入文本的值时出错

时间:2015-01-01 21:17:10

标签: javascript python xpath webkit web-scraping

我在使用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工作正常(找到控件),但是没有通过注入的脚本返回修改后的值。

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

先谢谢你,祝新年快乐!

1 个答案:

答案 0 :(得分:1)

我找到了一种方法来完成这项工作。

问题在于脚本...设置属性值必须使用' attr'方法:

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