gpt4 book ai didi

python - 抓取网站时处理 WebForm_DoPostBackWithOptions

转载 作者:太空宇宙 更新时间:2023-11-03 12:05:57 25 4
gpt4 key购买 nike

我正在尝试使用 selenium 抓取显示搜索结果列表的 aspx 网站;当脚本“点击”一个按钮时,会弹出一个警报 - 我尝试使用 EC.alert_is_present“点击”警报按钮继续到下一页,但它引发了一个 ValueError: No JSON对象可能被解码错误。

使用“检查元素显示”查看按钮本身的代码:

<a onclick="WaitPlease('_ctl0_btnDownloadWordDocs');
if (ConfirmWordDocDownload()==false) return false;"

id="_ctl0_btnDownloadWordDocs"class="ButtonsMedium"href='javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("_ctl0:btnDownloadWordDocs", "", true, "", "", false, true)) onclicksaved= "function onclick(event){ WaitPlease('_ctl0_btnDownloadWordDocs');

if(ConfirmWordDocDownload()==false) return false;}">...</a>

我猜它与 href 之后的 WebForm_DoPostBackWithOptions 有关,但谷歌搜索没有让我对这种情况有任何引用。

谢谢。

最佳答案

我确实有同样的错误。但是使用 jQuery o javascript 不需要从 selenium 执行 onClick 内容,只需使用 jQuery 或 javascript -> 在元素中进行点击。

String onClick = "$('#_ctl0_btnDownloadWordDocs').click();";
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeAsyncScript(onClick);

关于超时的一些更新。

try {
driver.manage().timeouts().setScriptTimeout(500,TimeUnit.MILLISECONDS);
String onClick = "$('#MainContent_btnConsultar').click();";
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeAsyncScript(onClick);
} catch (ScriptTimeoutException e) {
e.printStackTrace();
}

我希望这能像我一样解决你的错误。也许你必须从 Java 更新到 Python

你需要的导入

import java.util.List;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.ScriptTimeoutException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.Select;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

关于python - 抓取网站时处理 WebForm_DoPostBackWithOptions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32316933/

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