c# - 通过 selenium 从 chrome 商店下载扩展
问题描述
我想通过 selenium 从 chrome 商店下载 chrome 扩展程序一切顺利,除了要求确认下载扩展程序的弹出窗口。我试图接受弹出窗口,但没有成功,我正在添加完整的代码,只是缺少接受弹出窗口的部分。
这是我的代码(用c#编写):
static void WebStoreDownload(string webdriverDirectory)
{
WebDriverWait wait;
ChromeOptions options = new ChromeOptions();
options.PageLoadStrategy = PageLoadStrategy.None;
options.AddArgument("no-sandbox");
options.SetLoggingPreference(LogType.Driver, LogLevel.All);
IWebDriver driver = new ChromeDriver(webdriverDirectory, options, TimeSpan.FromMinutes(1));
driver.Navigate().GoToUrl("https://chrome.google.com/webstore/category/extensions");
wait = new WebDriverWait(driver, TimeSpan.FromMinutes(1));
wait.Until(condition => {
try
{
IWebElement serverTextBox = driver.FindElement(By.Id("searchbox-input"));
serverTextBox.Clear();
serverTextBox.SendKeys("malwarebyte");
serverTextBox.SendKeys(Keys.Enter);
return true;
}
catch (NoSuchElementException)
{
return false;
}
catch (ElementNotInteractableException)
{
return false;
}
});
wait = new WebDriverWait(driver, TimeSpan.FromMinutes(1));
wait.Until(condition => {
try
{
IWebElement toClick = driver.FindElement(By.XPath("//*[contains(text(), 'Malwarebytes Browser Guard')]"));
toClick.Click();
return true;
}
catch (NoSuchElementException)
{
return false;
}catch(ElementNotInteractableException)
{
return false;
}
});
Thread.Sleep(3000);
wait = new WebDriverWait(driver, TimeSpan.FromMinutes(1));
wait.Until(condition => {
try
{
IWebElement toClick = driver.FindElement(By.ClassName("g-c-R"));
toClick.Click();
return true;
}
catch (NoSuchElementException)
{
return false;
}
catch (ElementNotInteractableException)
{
return false;
}
});
}
这是弹出窗口:
我试过像:
driver.SwitchTo().Alert().Accept();
但它没有用,如何接受弹出窗口?
解决方案
推荐阅读
- jenkins-pipeline - artifactory - 获取依赖信息
- c++ - 使自定义范围 v3 视图可管道化
- c# - 在 MapControl 上移动图像 - uwp c#
- ios - 如何在 Carto Mobile Swift 中使用固定标记引脚在背景中移动地图
- go - 如何有效地停止 gocron 作业?
- angularjs - $interval.cancel 不破坏 http.get 中的计时器
- c++ - 如何从 std::optional 获取 QByteArray
并离开 std::nullopt 没有额外的mallocs? - java - 在列表视图中,我有一个对象,其中包含将填充位置的数据
- c# - c# 和 jQuery 如何清理用户名\密码字段
- ffmpeg - 剪切视频并同时在ffmpeg中与hstack叠加