当前位置: 首页 > 知识库问答 >
问题:

如何在PhantomDriver(无头浏览器)中隐藏FirefoxDriver(使用Selenium)而不查找函数错误?

归鸿朗
2023-03-14
        var options = new PhantomJSOptions();       
        options.AddAdditionalCapability("phantomjs.page.settings.userAgent", 
        "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) 
        Chrome/40.0.2214.94 Safari/537.36");
        PhantomJSOptions p = new PhantomJSOptions();           
        var service = PhantomJSDriverService.CreateDefaultService();
        service.SslProtocol = "any";
        service.ProxyType = "http";
        service.WebSecurity = false;
        service.IgnoreSslErrors = true;
        var driver = new PhantomJSDriver(service, options);
        driver.Navigate().GoToUrl("https://www.google.com.tr/");
        Thread.Sleep(5000);
        driver.FindElement(By.XPath("//*[@id='lst-ib']")).SendKeys("edd");          
        string s = driver.Url;
        Console.WriteLine(s);

webdriver.dll中出现“OpenQa.Selenium.NoSuchelementException”类型的未处理异常

其他信息:{“errormessage”:“无法找到带有xpath的元素”//[@id='_fzl']/span/svg/path'“,”request“:{”headers“:{”accept“:”application/json,image/png“,”connection“:”close“,”content-length“:”57“,”content-type“:”application/json;charset=UTF-8“,”host“:”localhost:50454“},”httpversion“:”1.1“,”method“:”post“,”post“:”{\“using\”:\“xpath\”,\“value\”:\“//[@id='_fzl'”/span/svg/path\}“、”URL“:”/element“、”URLParsed“:{”锚点“:”“、”查询“:”、“文件”:“元素”、“目录”:“/”、“路径”:“/element”、“相对”:“/element”、“端口”:“主机”:“”、“密码”:“”用户“:”“”用户信息“:”“”、“授权”:“”、“协议”:“”、“源”:“/element”、“查询键”:{}、“块”:“[”element“]}、”URLOriginent“:”/Session/FEAB13F0-720F-11E7-80B3-452AEE308158/元素“}}

还有其他隐藏FirefoxDriver的方法吗?你能帮帮我吗?

共有1个答案

景志
2023-03-14

我解决了。首先,我们可以使用PhantomJS,而不用通过以下代码显示它的控制台:

IWebDriver driver; 
var driverService = PhantomJSDriverService.CreateDefaultService();
driverService.HideCommandPromptWindow = true;
driver = new PhantomJSDriver(driverService);

其次是我提到的错误。Google为浏览器返回不同的HTML页面,因此PhantomJS浏览器中的Id或Xpath将与我打开Firefox时导出的Id或Xpath不同。当我用

string html=driver.PageSource;

要知道正确的XPath或Id是什么,findElement functiom运行良好。

"//*[@id='rso']/div/div/div[1]/div/div/h3/a"
"//*[@id='ires']//ol/div[1]/h3/a"
 类似资料:
  • 问题内容: 我尝试制作隐藏的FirefoxDriver。根据我的研究,我必须使用PhantomJSDriver,但是当我使用PhantomJSDriver driver.FindElement语句不再起作用。 错误信息: An unhandled exception of type ‘OpenQA.Selenium.NoSuchElementException’ occurred in WebDr

  • W Chromium:[警告:digital_asset_links_handler.cc(115)]语句匹配包失败。 但是根据资产链接工具,包名是it.thept.it.thept 你能帮我吗?

  • 问题内容: 我正在使用Selenium RC自动执行一些浏览器操作,但我希望浏览器不可见。这可能吗?怎么样?selenium网格呢?我也可以隐藏Selenium RC窗口吗? 问题答案: 有几种选择: 您可以使用Selenium Grid,以便在完全不同的计算机(或虚拟机)上打开浏览器,然后如果您想查看浏览器,则可以通过VNC或远程桌面连接连接到该计算机。另外,还有一个选择:如果在该远程服务器上运

  • 本文向大家介绍在不支持js的浏览器中如何隐藏JavaScript代码?相关面试题,主要包含被问及在不支持js的浏览器中如何隐藏JavaScript代码?时的应答技巧和注意事项,需要的朋友参考一下 在<script>标签之后的代码中添加“<!-– ”,不带引号。 在</script>标签之前添加“// –->”,代码中没有引号。 旧浏览器现在将JavaScript代码视为一个长的HTML注释。而支持

  • 问题内容: 是否可以将selenium连接到我通常使用的浏览器而不是驱动程序?对于正常浏览,我使用带有多个插件的chrome-添加block plus,flashblock等。我想尝试使用此特定配置加载网站。我怎样才能做到这一点? 我不在乎是否使用驱动程序生成进程。我只想要完整的浏览器配置-Cookie,插件,字体等。 谢谢 问题答案: 首先,您需要下载,然后将环境变量的可执行路径放置到环境变量中

  • 问题内容: 这应该工作: 它可以在Firefox中运行,但不能在Chrome中运行(可能未在IE中运行,未经测试)。 一个更有趣的示例: 是将选项元素与DOM分离的唯一选择吗?我需要稍后再显示给他们,所以这不会很有效。 问题答案: 不幸的是,您不能在所有浏览器中隐藏元素。 在过去,当我需要这样做时,我就设置了它们的属性,就像这样… 然后,我使用了这段CSS,在浏览器中支持隐藏的位置…