我正在尝试使用selenium搜索显示搜索结果列表的aspx网站;当脚本“点击”按钮时会弹出一个提示 - 我尝试“点击”提醒按钮以使用EC.alert_is_present
继续到下一页,但它引发了ValueError: No JSON object could be decoded
错误。
使用'inspect element shows:
查看按钮本身的代码<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>
我的猜测它与WebForm_DoPostBackWithOptions
之后的href
有关,但谷歌搜索没有让我参考这种情况。
感谢。
答案 0 :(得分:0)
我确实有同样的错误。 但是使用jQuery o时,无需从硒中执行onClick内容就可以使用javascript,只需使用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;