如何访问此元素:
<input type="submit" value="Save as XML" onclick="some code goes here">
更多信息:我必须以编程方式访问网页并模拟单击其上的按钮,然后生成一个xml文件,我希望能够保存在本地计算机上。
我试图通过使用 HtmlUnit 库来实现,但我找到的所有示例都使用 getElementById()或 getElementByName()方法。不幸的是,这个确切的元素没有名称或Id,所以我失败了。我当时认为我要做的就是使用 getByXPath()方法,但我完全迷失在XPath文档中(这件事对我来说都是新的)。
我被困在这几个小时,所以我真的需要我能得到的所有帮助
提前谢谢。
答案 0 :(得分:11)
XPATH有多个选项可供选择input
元素。
下面是一个选项,它在整个文档中查找input
元素,该元素具有名为类型的属性,其值为“submit”,属性名为 value 值为“另存为XML”。
//input[@type='submit' and @value='Save as XML']
如果您可以提供更多结构,则可以创建更具体(且更有效)的XPATH。例如,这样的事情可能有用:
/html/body//form//input[@type='submit' and @value='Save as XML']
你应该可以使用XPATH代码如下:
client = new WebClient(BrowserVersion.FIREFOX_3)
client.javaScriptEnabled = false
page = client.getPage(url)
submitButton = page.getByXPath("/html/body//form//input[@type='submit' and @value='Save as XML']")
答案 1 :(得分:0)
虽然在大多数情况下我会建议使用XPath,但如果您对此一无所知,可以尝试使用getInputByValue(String value)方法。这是一个基于您的问题的示例:
// Fetch the form somehow
HtmlForm form = this.page.getForms().get(0);
// Get the input by its value
System.out.println(form.getInputByValue("Save as XML").asXml());