【问题标题】:How to handle alert having javascript embedded into a button? [duplicate]如何处理将 javascript 嵌入到按钮中的警报? [复制]
【发布时间】:2016-06-26 03:36:04
【问题描述】:

我正在使用 webdriver 和 java 自动化一个共享点网站,其中包含嵌入到按钮代码中的 javascript。

请找到相同的HTML sn-p:

<input id="ctl00_ContentPlaceHolder1_btnDelete" class="btn" type="submit" onclick="javascript:return confirm('Please select OK to proceed else Cancel.');" value="Delete" name="ctl00$ContentPlaceHolder1$btnDelete"/>

请找到我的代码来处理同样的事情:

String js = "if (window.alert.myAlertText == undefined) {window.alert.myAlertText = null;  window.alert = function(msg){ window.alert.myAlertText = msg; };}";
//Click delete button 
((JavascriptExecutor) driver).executeScript("arguments[0].click();", driver.findElement(By.xpath(".//*@id='ctl00_ContentPlaceHolder1_btnDelete']")));
((JavascriptExecutor) driver).executeScript("arguments[0].click();", driver.switchTo().alert(), js);

但我无法接受或解除警报。

请帮忙!!!!

按钮截图:

Snapshot Alert

【问题讨论】:

    标签: javascript java selenium alert


    【解决方案1】:

    您可以通过关注并接受来切换到警报

    Alert alert = driver.switchTo().alert();
    alert.accept();
    

    另外,要解雇你可以参考这个

    Alert alert = driver.switchTo().alert();
    alert().dismiss();
    

    【讨论】:

    • 这永远行不通...因为其中嵌入了javascript。
    • 这应该有效,并且是处理您所描绘的对话框的正确方法。 JS 是调用对话框的原因,这就是您可以使用上面的代码处理它的原因。您可能需要稍等片刻,对话框才会出现。
    • 它不工作.....任何替代方案会有所帮助?
    猜你喜欢
    • 2019-08-07
    • 2021-04-27
    • 2018-04-22
    • 1970-01-01
    • 2021-04-08
    • 1970-01-01
    • 2014-05-01
    • 2014-11-24
    • 2022-06-12
    相关资源
    最近更新 更多