我在使用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工作正常(找到控件),但是没有通过注入的脚本返回修改后的值。
在显示的网页上输入被修改。
先谢谢你,祝新年快乐!
答案 0 :(得分:1)
我找到了一种方法来完成这项工作。
问题在于脚本...设置属性值必须使用' attr'方法:
script = """
$('#search_form_input').val('555555');
$('#search_form_input').attr('value','555555');
"""