0


C#版Selenium操作Chrome全屏模式显示(F11)

最近开发一个教室智能控制软件,主要实现在讲台上对教室里的所有用电设备进行控制,其主要是基于MQTT实现的,其操控界面使用WEB页面实现。

讲台上的主控计算机开机后进入Windows桌面后,自动运行浏览器并进入操控页面。由于操控界面没有用户验证,所以需要隐藏操控界面的地址,所以对入口地址加了验证信息,然后转至真正的界面。为了看启动更像桌面软件,所以还要求要浏览器全屏显示(即:自动按下F11进入全屏模式)。

方法一:通过创建Chrome的快捷方式,并在参数中加入--kiosk取可实现,如下图所示:

然后将其加入到Windows的开机启动项中即可。

该方法的唯一的缺点是:无法真正的隐藏操控界面的入口地址,对懂点计算机的人而然都能轻易拿到该地址。采用其他设备访问该地址对设备进行操作,这是我们不想看到的。

方法二:使用自动化测试工具Selenium实现对Chrome浏览器的控制。下载Selenium相关类库,及下载与本地计算机所安装的Chrome浏览器版本一致的ChromeDriver.exe。下载地址是:http://chromedriver.storage.googleapis.com/index.html

控制浏览器全屏的方法是对ChromeOptions的属性进行设置。网上很多人发的贴都是将浏览器的最大化写作浏览器的全屏,其实这是很不对。正确的做法如下所示:

哈哈,上图看到不清楚吧,我再附上代码:

        #region 启动浏览页面
        private void StartWebBroswer()
        {
            try
            {
                var option = new ChromeOptions();
                //是否隐藏浏览器
                //如果注释掉的话,那么会在启动的时候打开谷歌浏览器,在页面上可以看到填单的操作,如果取消的话,就只有cmd窗口,谷歌浏览器隐匿运行 
                //option.AddArgument("headless");               //无头模式(即浏览器隐藏运行)
                //option.AddArgument("window-size=1024,768");   //指定浏览器尺寸
                if (this.ViewKiosk == "1")
                {
                    option.AddArgument("--kiosk");              //全屏(但按F11无法退出全屏)
                }
                else
                {
                    option.AddArgument("--start-fullscreen");   //全部(按F11可以退出全屏)
                }
                //option.AddArgument("--start-maximized");      //浏览器最大化
                option.AddExcludedArgument("enable-automation");//不显示【正受到自动测试软件控制】字样
                //option.AddAdditionalCapability("useAutomationExtension", false);    //
                //设置cmd窗口不弹出来
                ChromeDriverService service = ChromeDriverService.CreateDefaultService(System.AppDomain.CurrentDomain.BaseDirectory.ToString());
                service.HideCommandPromptWindow = true;

                this.DriverObj = new ChromeDriver(service, option);
                this.DriverObj.Navigate().GoToUrl(this.ViewUrl);//https://www.baidu.com
                this.ExecutorObj = (IJavaScriptExecutor)DriverObj;
                this.ActionObj = new Actions(DriverObj);
            }
            catch (Exception xe)
            {
                this.WriteLogToFile("启浏览器失败,原因:" + xe.Message);
            }
        }
        #endregion

上面的代码段还包括了控制浏览器的无头模式,指定浏览器的尺寸、浏览器最大化、不显示【正受到自动测试软件控制】字样等,大家可以尽情使用。

下面是本次项目开发的一个小工具,在Windows的触屏设备上特别适用,支持随意设定启动的地址,开机自动运行、信息亭模式及密码保护等,供大家参考。

下载地址:

Chrome浏览器全屏显示并加载指定页面-桌面系统文档类资源-CSDN下载

标签: chrome selenium 前端

本文转载自: https://blog.csdn.net/hyjchina/article/details/124973747
版权归原作者 心蓝168 所有, 如有侵权,请联系我们删除。

“C#版Selenium操作Chrome全屏模式显示(F11)”的评论:

还没有评论