gpt4 book ai didi

java - 使用 HtmlUnit 单击同一页面上具有相同源属性但不同 onclick 事件的多个图像

转载 作者:行者123 更新时间:2023-12-01 14:36:36 24 4
gpt4 key购买 nike

我正在使用 HtmlUnit 从网页获取数据。该网页有多个看起来相同且具有相同 src 值的图像,但每个图像都有不同的 onclick 事件,根据单击的图像将其定向到新页面,而我需要保存数据的就是这个新页面从。我需要循环浏览图像并单击每个图像以获得 onclick 事件的结果。目前,我的代码循环遍历图像,但每个文件都包含第一个图像的 onclick 的输出。有人可以指出我缺少什么吗?我的代码如下:文件名中的 customer 是我之前在代码中声明的一个变量,我对每个循环进行更改,以便每个文件都有不同的名称。

DomNodeList<DomElement> iterable2 = page.getElementsByTagName("img");
Iterator<DomElement> i3 = iterable2.iterator();
int i = 0;
while(i3.hasNext())
{
HtmlElement element1 = null;
DomElement anElement = i3.next();
if(anElement instanceof HtmlImage)
{
HtmlImage input = (HtmlImage) anElement;
if(input.getSrcAttribute().equalsIgnoreCase("customise.gif") )
{
element1 = input;
page2 = element1.click();
webClient.waitForBackgroundJavaScript(30000);
String result = page2.asText();
try {
BufferedWriter out = new BufferedWriter(new FileWriter("Filepath//"+customer+i+".txt"));

out.write(result);
out.close();
}
catch (IOException e)
{
System.out.println("Exception ");

}
i++;
}
}

}

最佳答案

我通过使用 HtmlUnit 网站上针对类似问题发布的解决方案来实现此目的,可以在此处找到 http://htmlunit.10904.n7.nabble.com/Problem-in-clicking-multiple-javaScript-links-on-a-page-td22682.html

使用我的代码现在的链接中线程上最后发布的解决方案:

                   page = link3.click();
// Added the following line of code
Object page1Script = page.getEnclosingWindow().getScriptObject();

HtmlPage page2 = null;
Iterable<DomElement> iterable2 = page.getElementsByTagName("img");
Iterator<DomElement> i3 = iterable2.iterator();
int i = 0;
while(i3.hasNext())
{
// Added the following two lines of code
page.getEnclosingWindow().setEnclosedPage(page);
page.getEnclosingWindow().setScriptObject(page1Script);

HtmlElement element1 = null;
page2 = null;
DomElement anElement = i3.next();
if(anElement instanceof HtmlImage)
{
HtmlImage input = (HtmlImage) anElement;
if(input.getSrcAttribute().equalsIgnoreCase("customize.gif") )
{
element1 = input;
page2 = element1.click();
webClient.waitForBackgroundJavaScript(30000);
String result = page2.asText();
try {
BufferedWriter out = new BufferedWriter(new FileWriter("Filepath\\"+customer+i+".txt"));


out.write(result);
out.close();
}
catch (IOException e)
{
System.out.println("Exception ");

}
i++;
}
}

}

关于java - 使用 HtmlUnit 单击同一页面上具有相同源属性但不同 onclick 事件的多个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16439356/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com