如何用htmlunit向服务器javascrtipt提交数据和得到运行结果 20
自己的机票模拟查询网站http://case.koothink.com/demo/,没什么数据,只能得到武汉到三亚,3.20的查询结果我现在要使用htmlunit模拟客户...
自己的机票模拟查询网站http://case.koothink.com/demo/,没什么数据,只能得到武汉到三亚,3.20的查询结果
我现在要使用htmlunit模拟客户端运行下面三个javascript,能够输入参数并且能够得到javascript的运行结果
<script type="text/javascript" src="/demo/Public/Common/script/flightcity.js"></script>
<script type="text/javascript" src="/demo/Public/Common/script/jquery.SuperSlide.2.1.1.js"></script>
<script type="text/javascript" src="http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js"></script>
对htmlunit不熟,请高手支招,比如flightcity.js包含的就是城市信息,我想用htmlunit得到flightcity.js里面的城市信息,网上搜到一篇python类似的文章,但是模仿了下不能用
import com.gargoylesoftware.htmlunit.WebClient as WebClient
import com.gargoylesoftware.htmlunit.BrowserVersion as BrowserVersion
def main():
webclient = WebClient(BrowserVersion.FIREFOX_3_6) # creating a new webclient object.
url = "http://www.gartner.com/it/products/mq/mq_ms.jsp"
page = webclient.getPage(url) # getting the url
articles = page.getByXPath("//table[@id='mqtable']//tr/td/a") # getting all the hyperlinks
for article in articles:
print "Clicking on:", article
subpage = article.click() # click on the article link
title = subpage.getByXPath("//div[@class='title']") # get title
summary = subpage.getByXPath("//div[@class='summary']") # get summary
if len(title) > 0 and len(summary) > 0:
print "Title:", title[0].asText()
print "Summary:", summary[0].asText()
# break 展开
我现在要使用htmlunit模拟客户端运行下面三个javascript,能够输入参数并且能够得到javascript的运行结果
<script type="text/javascript" src="/demo/Public/Common/script/flightcity.js"></script>
<script type="text/javascript" src="/demo/Public/Common/script/jquery.SuperSlide.2.1.1.js"></script>
<script type="text/javascript" src="http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js"></script>
对htmlunit不熟,请高手支招,比如flightcity.js包含的就是城市信息,我想用htmlunit得到flightcity.js里面的城市信息,网上搜到一篇python类似的文章,但是模仿了下不能用
import com.gargoylesoftware.htmlunit.WebClient as WebClient
import com.gargoylesoftware.htmlunit.BrowserVersion as BrowserVersion
def main():
webclient = WebClient(BrowserVersion.FIREFOX_3_6) # creating a new webclient object.
url = "http://www.gartner.com/it/products/mq/mq_ms.jsp"
page = webclient.getPage(url) # getting the url
articles = page.getByXPath("//table[@id='mqtable']//tr/td/a") # getting all the hyperlinks
for article in articles:
print "Clicking on:", article
subpage = article.click() # click on the article link
title = subpage.getByXPath("//div[@class='title']") # get title
summary = subpage.getByXPath("//div[@class='summary']") # get summary
if len(title) > 0 and len(summary) > 0:
print "Title:", title[0].asText()
print "Summary:", summary[0].asText()
# break 展开
展开全部
看了下你的网站,你的目的应该是测试按下搜索按钮之后显示的结果网页里面的内容是否符合预想吧,其实htmlunit本身相当于模拟了一个浏览器,所以你不需要分别执行那几个javascript,只要用htmlunit的webclient用你的地址装入网页(这时候他会自动装入需要的javascript并执行),然后用你会得到一个htmlpage对象,从里面找到需要填值的input对象,设置参数,然后找到搜索按钮,模拟点击即可,然后webclient会像真正的浏览器一样做submit,并更新他内部的网页数据,之后你只要在更新过的htmlpage对象中寻找预想结果应该生成的网页对象并判断其值是否正确即可。
我没有用过python版的htmlunit,我用的是java版,但用法应该类似,你也可以参考下面的这个网页,当然他只做到了submit,之后的对结果的判断做法是类似的,也可以用你上面写的通过xpath到结果网页里面寻找的方法。
http://blog.csdn.net/xuweilinjijis/article/details/8984290
我没有用过python版的htmlunit,我用的是java版,但用法应该类似,你也可以参考下面的这个网页,当然他只做到了submit,之后的对结果的判断做法是类似的,也可以用你上面写的通过xpath到结果网页里面寻找的方法。
http://blog.csdn.net/xuweilinjijis/article/details/8984290
追问
http://blog.csdn.net/xuweilinjijis/article/details/8984290
还是一个静态的html处理办法,form是在页面上直接存在的,而我要做的操作都是在javascript里面的,包括从“搜索”按钮也是在javascript,所以你给的答案可能不是我想要的。
网易云信
2023-12-06 广告
2023-12-06 广告
网易云信提供一站式的 1 对 1 UIKit 组件库,可以更快地搭建 1 对 1 社交平台,能够快速实现音视频呼叫、音视频通话、1对1消息发送、美颜和礼物功能,直接可以复用我们的组件源码就可以了。优势:1、全套1对1 UI组件,接入更快;2...
点击进入详情页
本回答由网易云信提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询