我如何从多个具有相同名称的提交按钮 select (HtmlUnit, Java)
How can I select from multiple Submit button with same name (HtmlUnit, Java)
我正在使用 HTMLUnit,但遇到了问题。该网页有多个按钮,它们具有相同的名称,相同 class,唯一的区别是 onClick。
如何点击我的按钮? (当我运行我的代码时,什么也没有发生)
我需要这个按钮:
<button name="singlebutton" class="btn btn-success" onClick="add();">Add</button>
但同样的源码中还有:
<button name="singlebutton" class="btn btn-success" onClick="update();">Update</button>
<button name="singlebutton" class="btn btn-success" onClick="update2();">Update</button>
我尝试像往常一样提交,但没有任何反应:
(我也试过作为 HtmlSubmitInput,但我有一个转换错误)
HtmlButton submitBtn = (HtmlButton) currentPage.getElementByName("singlebutton");
currentPage = (HtmlPage) submitBtn.click();
我怎样才能找到我需要的按钮?它不在
之间
提前致谢
p.s.: 如果按钮嵌套在 DIV:
中很重要
<div class="tab-pane active fade in" id="add">
实际上,您可以在 DOM.
上创建类似 css 的 select
来自 HtmlUnit 的 "Getting started" 页面:
@Test
public void cssSelector() throws Exception {
try (final WebClient webClient = new WebClient()) {
final HtmlPage page = webClient.getPage("http://htmlunit.sourceforge.net");
//get list of all divs
final DomNodeList<DomNode> divs = page.querySelectorAll("div");
for (DomNode div : divs) {
....
}
//get div which has the id 'breadcrumbs'
final DomNode div = page.querySelector("div#breadcrumbs");
}
}
所以你应该可以 select:
final DomNode element = page.querySelector("button.btn-success"
+ "[name='singlebutton'][onClick='add();']");
或者更确切地说,如果您觉得 select点击 div 内的按钮更安全:
final DomNode element = page.querySelector("div#add button.btn-success[name='singlebutton']");
我们可以创建简单的 javascript 函数 add()、update(),它们将通过单击按钮调用,而不是通过 DOM
来调用
我正在使用 HTMLUnit,但遇到了问题。该网页有多个按钮,它们具有相同的名称,相同 class,唯一的区别是 onClick。
如何点击我的按钮? (当我运行我的代码时,什么也没有发生)
我需要这个按钮:
<button name="singlebutton" class="btn btn-success" onClick="add();">Add</button>
但同样的源码中还有:
<button name="singlebutton" class="btn btn-success" onClick="update();">Update</button>
<button name="singlebutton" class="btn btn-success" onClick="update2();">Update</button>
我尝试像往常一样提交,但没有任何反应: (我也试过作为 HtmlSubmitInput,但我有一个转换错误)
HtmlButton submitBtn = (HtmlButton) currentPage.getElementByName("singlebutton");
currentPage = (HtmlPage) submitBtn.click();
我怎样才能找到我需要的按钮?它不在
之间提前致谢
p.s.: 如果按钮嵌套在 DIV:
中很重要<div class="tab-pane active fade in" id="add">
实际上,您可以在 DOM.
上创建类似 css 的 select来自 HtmlUnit 的 "Getting started" 页面:
@Test
public void cssSelector() throws Exception {
try (final WebClient webClient = new WebClient()) {
final HtmlPage page = webClient.getPage("http://htmlunit.sourceforge.net");
//get list of all divs
final DomNodeList<DomNode> divs = page.querySelectorAll("div");
for (DomNode div : divs) {
....
}
//get div which has the id 'breadcrumbs'
final DomNode div = page.querySelector("div#breadcrumbs");
}
}
所以你应该可以 select:
final DomNode element = page.querySelector("button.btn-success"
+ "[name='singlebutton'][onClick='add();']");
或者更确切地说,如果您觉得 select点击 div 内的按钮更安全:
final DomNode element = page.querySelector("div#add button.btn-success[name='singlebutton']");
我们可以创建简单的 javascript 函数 add()、update(),它们将通过单击按钮调用,而不是通过 DOM
来调用