Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HtmlUnit,如何在没有名称属性的情况下获取按钮_Java_Htmlunit - Fatal编程技术网

Java HtmlUnit,如何在没有名称属性的情况下获取按钮

Java HtmlUnit,如何在没有名称属性的情况下获取按钮,java,htmlunit,Java,Htmlunit,不是这样的。有人能帮助我并告诉我如何通过HtmlUnit获取此按钮。一个使用xpath获取按钮的示例 示例代码 button = a.getInputByName("btnLogin"); public void xpath()引发异常{ 最终WebClient WebClient=新WebClient(); 最终HtmlPage=webClient.getPage(“http://htmlunit.sourceforge.net"); //获取所有div的列表 最终列表divs=page.g

不是这样的。有人能帮助我并告诉我如何通过HtmlUnit获取此按钮。

一个使用xpath获取按钮的示例

示例代码

button = a.getInputByName("btnLogin");
public void xpath()引发异常{
最终WebClient WebClient=新WebClient();
最终HtmlPage=webClient.getPage(“http://htmlunit.sourceforge.net");
//获取所有div的列表
最终列表divs=page.getByXPath(“//div”);
//get div的'name'属性为'John'
最终的HtmlDivision div=(HtmlDivision)page.getByXPath(“//div[@name='John']/button”).get(0);
webClient.closeAllWindows();
}

使用xpath获取按钮的示例

示例代码

button = a.getInputByName("btnLogin");
public void xpath()引发异常{
最终WebClient WebClient=新WebClient();
最终HtmlPage=webClient.getPage(“http://htmlunit.sourceforge.net");
//获取所有div的列表
最终列表divs=page.getByXPath(“//div”);
//get div的'name'属性为'John'
最终的HtmlDivision div=(HtmlDivision)page.getByXPath(“//div[@name='John']/button”).get(0);
webClient.closeAllWindows();
}

使用XPath应该是最好的方法。问题是,您必须自己找到最合适的XPath

一旦有了XPath标准,HtmlUnit代码就很简单:

public void xpath() throws Exception {
    final WebClient webClient = new WebClient();
    final HtmlPage page = webClient.getPage("http://htmlunit.sourceforge.net");

    //get list of all divs
    final List<?> divs = page.getByXPath("//div");

    //get div which has a 'name' attribute of 'John'
    final HtmlDivision div = (HtmlDivision) page.getByXPath("//div[@name='John']/button").get(0);

    webClient.closeAllWindows();
}

我不确定我建议的XPath字符串是否会起作用,但它应该非常接近。使用XPath应该是最好的方法。问题是,您必须自己找到最合适的XPath

一旦有了XPath标准,HtmlUnit代码就很简单:

public void xpath() throws Exception {
    final WebClient webClient = new WebClient();
    final HtmlPage page = webClient.getPage("http://htmlunit.sourceforge.net");

    //get list of all divs
    final List<?> divs = page.getByXPath("//div");

    //get div which has a 'name' attribute of 'John'
    final HtmlDivision div = (HtmlDivision) page.getByXPath("//div[@name='John']/button").get(0);

    webClient.closeAllWindows();
}

我不确定我建议的XPath字符串是否会起作用,但它应该非常接近。

尝试获取标记名,然后在列表中指定索引:

HtmlButton button = page.getFirstByXPath("//button[@type='submit' and span[text()=='Search']]");
button.click();

//它对我不起作用。

尝试按标记名获取,然后在列表中指定索引:

HtmlButton button = page.getFirstByXPath("//button[@type='submit' and span[text()=='Search']]");
button.click();

//它对我不起作用。

尝试使用xpath获取按钮。@linkstatic这样做有效吗?您还没有提供任何反馈。请尝试使用xpath获取按钮。@linkstatic。这样做有效吗?你还没有提供任何反馈