Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Selenium从JavaScript窗口获取文本?_Javascript_Selenium - Fatal编程技术网

如何使用Selenium从JavaScript窗口获取文本?

如何使用Selenium从JavaScript窗口获取文本?,javascript,selenium,Javascript,Selenium,我有一个应用程序,点击一个链接,就会打开一个没有URL的JavaScript窗口。我想在点击链接后,在这个窗口中写入一个文本 Alert alert = driver.switchTo().alert(); // Capturing alert message. String alertMessage= driver.switchTo().alert().getText(); // Displaying alert mes

我有一个应用程序,点击一个链接,就会打开一个没有URL的JavaScript窗口。我想在点击链接后,在这个窗口中写入一个文本

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

    // Capturing alert message.    
    String alertMessage= driver.switchTo().alert().getText();       

    // Displaying alert message     
    System.out.println(alertMessage);   
    Thread.sleep(5000);

    // Accepting alert      
    alert.accept();     
  • 我尝试过使用
    autoITx4java
    ,但没有成功
  • 我尝试过使用windowhandles和alerts,但没有任何效果

根据您的问题,如果是java脚本警报,则可以使用
警报
功能

public static String getTextFromAlert(WebDriver driver){
    try {
        Alert alert = driver.switchTo().alert();
        return alert.getText();
    }
    catch (NoAlertPresentException Ex) {
        // your custom code or assert condition for alert not present.
    }
    return null;
}
    Alert alert = driver.switchTo().alert();        

    // Capturing alert message.    
    String alertMessage= driver.switchTo().alert().getText();       

    // Displaying alert message     
    System.out.println(alertMessage);   
    Thread.sleep(5000);

    // Accepting alert      
    alert.accept();     

有更多的
Alert
方法来处理web窗口中的警报<代码>警报。接受()接受警报,而
警报.解除()解除警报

请参考以下代码来处理基于javascript的弹出窗口:

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

    // Capturing alert message.    
    String alertMessage= driver.switchTo().alert().getText();       

    // Displaying alert message     
    System.out.println(alertMessage);   
    Thread.sleep(5000);

    // Accepting alert      
    alert.accept();     

请澄清您的具体问题或添加其他详细信息,以突出显示您所需的内容。正如目前所写的,很难准确地说出你在问什么。请参阅页面以获取澄清此问题的帮助。