Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.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
Javascript 如何预防特定的<;脚本>;在Java中的自动化Selenium测试期间执行的标记?_Javascript_Java_Selenium_Selenium Webdriver_Browsermob Proxy - Fatal编程技术网

Javascript 如何预防特定的<;脚本>;在Java中的自动化Selenium测试期间执行的标记?

Javascript 如何预防特定的<;脚本>;在Java中的自动化Selenium测试期间执行的标记?,javascript,java,selenium,selenium-webdriver,browsermob-proxy,Javascript,Java,Selenium,Selenium Webdriver,Browsermob Proxy,我有一个特定的网站,有两个脚本,如下所示: <html> <script type="text/javascript"> Populates input field A with value = B </script> <script type="text/javascript"> Overwrites input field A with value = C </sc

我有一个特定的网站,有两个脚本,如下所示:

<html>    
    <script type="text/javascript">
        Populates input field A with value = B
    </script>

    <script type="text/javascript">
        Overwrites input field A with value = C
    </script>    
</html>
调用时,WebDriver将加载整个页面。是否有一种方法可以在字段a中填充“B”后立即停止页面加载


我已尝试使用BrowserMob Proxy将第二个脚本替换为空白脚本,但我不确定如何使用筛选器来完成此操作。

您的要求是基于应用程序。 Selenium不控制您的应用程序业务逻辑。它只是模仿您将手动执行的操作

selenium中有一个名为javascript executor的类。 您可以使用它删除html部分,如果您的if事件或您的html javascript在执行任何操作(如单击)后调用,它将起作用。您可以使用
driver.navigate().refresh()当您再次需要原始DOM时

代码:

资料来源:


注意:这只是一种方法,同样取决于您的应用程序。

@bengalsfan123您将如何手动执行此操作?@DebanjanB我可以通过在浏览器中使用Charles代理手动执行此操作。我可以截获HTTP响应,将第二个脚本修改为空,然后继续。
WebDriver driver = new ChromeDriver();
JavascriptExecutor js;
if (driver instanceof JavascriptExecutor) {
    js = (JavascriptExecutor) driver;
}
js.executeScript("return document.getElementsByClassName('review-info-star')[0].remove();");