gpt4 book ai didi

javascript - 如何防止在 Java 自动化 Selenium 测试期间执行特定的 <script> 标记?

转载 作者:行者123 更新时间:2023-12-02 00:37:02 25 4
gpt4 key购买 nike

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

<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>

我正在 Java 中使用 Selenium WebDriver 来测试上述功能。 Selenium 有没有办法让我停止第二个脚本的运行,以便我可以在 C 覆盖它之前测试输入字段 A 首先具有值 B?

我知道当

driver.get("someUrl");

被调用时,WebDriver 将加载整个页面。有没有一种方法可以在“B”填充到字段 A 后立即停止页面加载?

我尝试使用 BrowserMob 代理将第二个脚本替换为空白脚本,但我不确定如何使用过滤器来执行此操作。

最佳答案

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

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

代码:

WebDriver driver = new ChromeDriver();
JavascriptExecutor js;
if (driver instanceof JavascriptExecutor) {
js = (JavascriptExecutor) driver;
}
js.executeScript("return document.getElementsByClassName('review-info-star')[0].remove();");

来源:

WebDriver remove element from page

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

关于javascript - 如何防止在 Java 自动化 Selenium 测试期间执行特定的 &lt;script&gt; 标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57966659/

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