繁体   English   中英

使用网络驱动程序清除Chrome上的缓存

[英]clearing cache on chrome using web driver

我们正在使用Jmeter硒webdriver测试Web应用程序。 当HTTP管理器执行工作时,我们试图使用下面的代码清除缓存。 由于某种原因,这是失败的。 我们需要明确的缓存机制来实施。 除此之外,我们也尝试了隐身模式,如gooogle所建议的,没有其他运气。 我们还试图在透明浏览器窗口中将浏览器启动为(chrome:// settings / clearBrowserData)后点击(Sendkeys)Enter。 Driver.close()将无法根据情况需要帮助我们。

启动浏览器后,请提出一些想法/建议如何执行Enter。

非常感谢您的时间和帮助。

    var pkg=JavaImporter(org.openqa.selenium,org.openqa.selenium.support.ui) //import java selenium packages
var Thr=JavaImporter(java.lang.Thread) //import Thread sleep packages
var wait = new pkg.WebDriverWait(WDS.browser,30) //import WebDriverWait Package
WDS.browser.get('chrome://settings/clearBrowserData')
Thr.Thread.sleep(5000)
WDS.browser.switchTo().frame("settings")
var ChkBox = WDS.browser.findElement(pkg.By.xpath('//*[@id="delete-form-data-checkbox"]'))
ChkBox.click()
////*[@id="clear-browser-data-overlay"]/div[4]
//wait.until(pkg.ExpectedConditions.presenceOfElementLocated(pkg.By.xpath('//*[@id="clear-browser-data-commit"]')))
//wait.until(pkg.ExpectedConditions.presenceOfElementLocated(pkg.By.xpath('//*[@id="clear-browser-data-overlay"]/div[4]')))
var ClearCache = WDS.browser.findElement(pkg.By.xpath('//*[@id="clear-browser-data-commit"]'))
ClearCache.click()
wait.until(pkg.ExpectedConditions.presenceOfElementLocated(pkg.By.xpath('//*[@id="privacy-section"]/h3')))

当前的Chrome浏览器清除缓存按钮已被阴影化(其为ShadowDOM)。 我们将无法直接与其互动。 我们将需要标识其JS路径并使用executeScript函数执行单击。 无需为executeScript函数导入任何Java包。

只需添加以下行以清除脚本中的缓存即可。

WDS.browser.executeScript('return document.querySelector("body > settings-ui").shadowRoot.querySelector("#main").shadowRoot.querySelector("settings-basic-page").shadowRoot.querySelector("#advancedPage > settings-section:nth-child(1) > settings-privacy-page").shadowRoot.querySelector("settings-clear-browsing-data-dialog").shadowRoot.querySelector("#clearBrowsingDataConfirm").click();')

使用JMeter + WebDriver进行愉快的测试

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM