首页 > 解决方案 > C# Selenium 关闭随机出现的灯箱

问题描述

我正在尝试关闭一个仅偶尔/随机弹出的灯箱。我意识到我可以使用显式等待来等待灯箱的关闭按钮可见,但是,它会浪费地限制我在所有不包含灯箱的页面加载时的吞吐量。

var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(WaitTimeout));
wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(LightBoxCloseButtonSelector));

甚至有解决这个问题的方法吗?也许有一些 FluentWait 魔法?也许是JavascriptExecutor?

标签: c#selenium

解决方案


我能够通过在每个页面加载时使用 JavaScriptExecutor 执行以下 Javascript 来解决此问题:

var divs=document.getElementsByClassName('CLASS_NAME_OF_OVERLAY_CONTAINER');for(var i=0;i<divs.length;i++){divs[i].style.display='none'}

推荐阅读