Selenium c#-清除缓存和浏览数据
在我的测试脚本中,我让selenium打开chrome设置页面。在该页面上,我希望它选择“清除数据”按钮Selenium c#-清除缓存和浏览数据,c#,selenium,automation,selenium-chromedriver,C#,Selenium,Automation,Selenium Chromedriver,在我的测试脚本中,我让selenium打开chrome设置页面。在该页面上,我希望它选择“清除数据”按钮 我收到一个错误,说找不到元素。我也试过只使用“ID”这个词。有没有其他方法可以做到这一点 那个按钮真的很难够到,因为聚合物。 试试这个,它对我有用 using System; using OpenQA.Selenium; using OpenQA.Selenium.Chrome; namespace Selenium_test { class Program {
我收到一个错误,说找不到元素。我也试过只使用“ID”这个词。有没有其他方法可以做到这一点 那个按钮真的很难够到,因为聚合物。 试试这个,它对我有用
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
namespace Selenium_test
{
class Program
{
static IWebDriver driver;
static void Main(string[] args)
{
driver = new ChromeDriver();
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);
driver.Navigate().GoToUrl("chrome://settings/clearBrowserData");
IWebElement root1 = driver.FindElement(By.CssSelector("settings-ui"));
IWebElement shadowRoot1 = expandRootElement(root1);
IWebElement root2 = shadowRoot1.FindElement(By.CssSelector("settings-main"));
IWebElement shadowRoot2 = expandRootElement(root2);
IWebElement root3 = shadowRoot2.FindElement(By.CssSelector("settings-basic-page"));
IWebElement shadowRoot3 = expandRootElement(root3);
IWebElement root4 = shadowRoot3.FindElement(By.CssSelector("settings-section > settings-privacy-page"));
IWebElement shadowRoot4 = expandRootElement(root4);
IWebElement root5 = shadowRoot4.FindElement(By.CssSelector("settings-clear-browsing-data-dialog"));
IWebElement shadowRoot5 = expandRootElement(root5);
IWebElement root6 = shadowRoot5.FindElement(By.CssSelector("#clearBrowsingDataDialog"));
IWebElement root7 = root6.FindElement(By.CssSelector("cr-tabs[role='tablist']"));
root7.Click();
IWebElement clearDataButton = root6.FindElement(By.CssSelector("#clearBrowsingDataConfirm"));
clearDataButton.Click();
}
private static IWebElement expandRootElement(IWebElement element)
{
return (IWebElement)((IJavaScriptExecutor)driver).ExecuteScript("return arguments[0].shadowRoot", element);
}
}
}
因为我是个新手,所以我不能投票给@Lanki-answer。 它就像一个符咒 下面是同一脚本的JAVA版本:
WebElement root1=driver.findElement(By.cssSelector(“设置ui”);
WebElement shadowRoot1=expandRootElement(root1);
WebElement root2=shadowRoot1.findElement(By.cssSelector(“settings main”);
WebElement shadowRoot2=expandRootElement(root2);
WebElement root3=shadowRoot2.findElement(By.cssSelector(“设置基本页面”);
WebElement shadowRoot3=expandRootElement(root3);
WebElement root4=shadowRoot3.findElement(By.cssSelector(“设置部分>设置隐私页面”);
WebElement shadowRoot4=expandRootElement(root4);
WebElement root5=shadowRoot4.findElement(By.cssSelector(“设置清除浏览数据对话框”);
WebElement shadowRoot5=expandRootElement(root5);
WebElement root6=shadowRoot5.findElement(By.cssSelector(“#clearBrowsingDataDialog”);
WebElement root7=root6.findElement(由.cssSelector(“cr选项卡[role='tablist']));
root7.单击();
WebElement clearDataButton=root6.findElement(由.cssSelector(“#clearBrowsingDataConfirm”);
clearDataButton.click();
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
namespace Selenium_test
{
class Program
{
static IWebDriver driver;
static void Main(string[] args)
{
driver = new ChromeDriver();
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);
driver.Navigate().GoToUrl("chrome://settings/clearBrowserData");
IWebElement root1 = driver.FindElement(By.CssSelector("settings-ui"));
IWebElement shadowRoot1 = expandRootElement(root1);
IWebElement root2 = shadowRoot1.FindElement(By.CssSelector("settings-main"));
IWebElement shadowRoot2 = expandRootElement(root2);
IWebElement root3 = shadowRoot2.FindElement(By.CssSelector("settings-basic-page"));
IWebElement shadowRoot3 = expandRootElement(root3);
IWebElement root4 = shadowRoot3.FindElement(By.CssSelector("settings-section > settings-privacy-page"));
IWebElement shadowRoot4 = expandRootElement(root4);
IWebElement root5 = shadowRoot4.FindElement(By.CssSelector("settings-clear-browsing-data-dialog"));
IWebElement shadowRoot5 = expandRootElement(root5);
IWebElement root6 = shadowRoot5.FindElement(By.CssSelector("#clearBrowsingDataDialog"));
IWebElement root7 = root6.FindElement(By.CssSelector("cr-tabs[role='tablist']"));
root7.Click();
IWebElement clearDataButton = root6.FindElement(By.CssSelector("#clearBrowsingDataConfirm"));
clearDataButton.Click();
}
private static IWebElement expandRootElement(IWebElement element)
{
return (IWebElement)((IJavaScriptExecutor)driver).ExecuteScript("return arguments[0].shadowRoot", element);
}
}
}