C# Selenium操作指南,关闭黑色CMD窗口/禁用图片/隐藏浏览器等,更新待续....

引用部分:

1.

2.用到的程序包


 

配置部分:


ChromeDriverService driverService = ChromeDriverService.CreateDefaultService();
driverService.HideCommandPromptWindow = true;//关闭黑色cmd窗口

ChromeOptions options = new ChromeOptions();
//取消 chrome正受到自动测试软件的控制的信息栏
options.AddExcludedArgument("enable-automation");
options.AddAdditionalCapability("useAutomationExtension", false);
//禁用浏览器的保存密码选项
options.AddUserProfilePreference("credentials_enable_service", false);
//禁用浏览器弹窗(貌似不管用)
options.AddUserProfilePreference("profile.default_content_setting_values.notifications", 2);
// 不显示浏览器
//options.AddArgument("--headless");
// GPU加速可能会导致Chrome出现黑屏及CPU占用率过高,所以禁用
options.AddArgument("--disable-gpu");
// 伪装user-agent
options.AddArgument("user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) CriOS/56.0.2924.75 Mobile/14E5239e Safari/602.1");
//隐身模式(无痕模式)
options.AddArgument("--incognito");
// 设置chrome启动时size大小
options.AddArgument("--window-size=414,736");
// 禁用图片
options.AddUserProfilePreference("profile.default_content_setting_values.images", 2);
//指定浏览器配置目录
// string str = System.Environment.CurrentDirectory+ "\\selenium\\AutomationProfile";
// options.AddArgument(@"--user-data-dir="+ str);
//指定使用本地浏览器
options.BinaryLocation = "本地浏览器路径";

IWebDriver webDriver = new ChromeDriver(driverService,options);
//Selenium事件驱动
EventFiringWebDriver eventDriver = new EventFiringWebDriver(webDriver);
//如果查找元素在5S内还没有找到
eventDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5); 
//为Selenium添加事件
eventDriver = new EventFiringWebDriver(webDriver);
eventDriver.Navigating += EventDriver_Navigating;//导航前
eventDriver.Navigated += EventDriver_Navigated;//导航后
 
string url = "https://www.baidu.com";
eventDriver.Navigate().GoToUrl(url);

↓↓↓↓↓↓↓↓需要什么事件,这边自己慢慢找↓↓↓↓↓↓↓↓

提示:这边的事件只有在使用eventDriver的进行的操作才会触发,如果你是手动操作的,那么这边的事件是不会被触发的


 模拟鼠标在指定元素悬停

//模拟鼠标在指定元素悬停
Actions action = new Actions(eventDriver);
var mouserOverlogin = action.MoveToElement(eventDriver.FindElement(By.Id("js_N_nav_login_title"))).Build(); ;
mouserOverlogin.Perform();

 


如果要点击的元素被其他元素遮挡,报异常,可以用这种方法来点击

var element = webDriver.FindElement(By.Id("mybutton"));  //点击写信
((IJavaScriptExecutor)webDriver).ExecuteScript(@"arguments[0].click()", element);

 


 执行JS(将滚动条拉到底部):

//老版执行JS方法
//((IJavaScriptExecutor)webDriver).ExecuteScript("window.scrollTo(0, document.body.scrollHeight)");
//事件驱动执行JS方法
eventDriver.ExecuteScript("window.scrollTo(0, document.body.scrollHeight)");

 获取标签(以多Class为例):

ReadOnlyCollection<IWebElement> elements = eventDriver.FindElements(By.CssSelector("[class='item goWork']"));

切换标签页面(eventDriver无法监控当前是在哪个标签页,只能自己SwitchTo)

foreach (string eventDriverWindowHandle in eventDriver.WindowHandles)
{
    eventDriver.SwitchTo().Window(eventDriverWindowHandle);
    if (eventDriver.Title == "云筑优选-商品详情")
    {
        downImg();
        break;
    }
}

退出同时关闭驱动

private void Form1_FormClosing(object sender, FormClosingEventArgs e) {
    if (eventDriver!=null){
        //窗口关闭前记得浏览器,否则驱动会残留在进程里面
        eventDriver.Quit();
    }
}

 

 

 

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值