- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我尝试制作隐藏的 FirefoxDriver。根据我的研究,我必须使用 PhantomJSDriver 但当我使用 PhantomJSDriver 驱动程序时。FindElement 语句不再不起作用。
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":{"anchor":"","query":"""文件":"元素","目录":"/","路径":"/元素","相对":"/元素","端口":"","主机":"","password":"","user":"","userInfo":"","authority":"","protocol":"","source":"/element","queryKey":{}, "chunks":["element"]},"urlOriginal":"/session/feab13f0-720f-11e7-80b3-452aee308158/element"}}
还有其他隐藏 FirefoxDriver 的方法吗?你能帮帮我吗?
最佳答案
我解决了。首先我们可以使用 PhantomJS 而无需通过以下代码显示其控制台:
IWebDriver driver;
var driverService = PhantomJSDriverService.CreateDefaultService();
driverService.HideCommandPromptWindow = true;
driver = new PhantomJSDriver(driverService);
其次是我提到的错误。Google 为浏览器返回不同的 HTML 页面,因此 PhantomJS 浏览器中的 Id 或 Xpath 将与我在打开 Firefox 时导出的不同。当我使用
string html=driver.PageSource;
要了解正确的 XPath 或 Id,findElement 函数运行良好。
例如:对于谷歌网站的结果FirefoxDriver 中第一个链接的 XPath 是
"//*[@id='rso']/div/div/div[1]/div/div/h3/a"
PhantomJSDriver 中第一个链接的 XPath 是
"//*[@id='ires']//ol/div[1]/h3/a"
关于c# - 如何在 PhantomDriver( headless 浏览器)中没有 findElement 函数错误的情况下隐藏 FirefoxDriver(使用 Selenium)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45233065/
在driver.findElements()中,我们获得了另一个用于查找size()的函数,该函数在driver.findElement()中不可用。 这是唯一的区别吗? 最佳答案 driver.fi
当我尝试使用 webDriver 搜索一个或多个元素时,它没有返回任何内容。操作系统:Ubuntu 14.04,框架:Intellij Idea,语言:Java。 我有这些声明: WebDriver
还是它们只影响 findElement?例如,如果我想测试页面上不存在的元素,我是要使用findElement(由于隐式等待会很慢),还是可以使用findElements(..).size() ==
我正在使用 WebElement.findElement(By.cssSelector('')).click(); 在页面上查找元素,但它返回了 “无法定位元素” ,但是当我使用 WebDriver.
当我执行下面的代码时,代码工作得很好 WebElement element = driver.findElement(By.xpath("String1")); element.findElement
我正在使用 Protractor(Angular JS 的 webdriver 包装器),尽管我可以无限期地将 findElement 链接到单个 WebElement 实例,但当我尝试时会收到错误使
为什么要使用@FindBy和driver.findElement()? @FindBy迫使我将所有变量都移到类级别(大多数变量只需要在方法级别时使用)。似乎唯一能买到我的东西是我可以调用PageFac
无法在 Google map 中找到元素。 ::::: :::::: :::::: 我尝试使用此方法,但没有成功选择具有“gm-
我正在 Selenium Webdriver 中编写代码。我必须点击 HTML 代码为 的按钮 我的代码就像下面一样简单 driver.findElement(By.id("aui_3_4_0_1_
MobileElement followButton = (MobileElement) driver.findElement(By.xpath("//android.widget.ListView[
我完全陷入困境,不知道为什么我会得到这样的输出。这是相关的片段。 WebElement section = driver.findElement(By.xpath("//div[contains(@c
我需要一些帮助来尝试从以下网站获取本圣经章节的每一节经文作为数据框中的一行字符串。 我正在努力寻找正确的元素/不知道如何将 findElements() 与浏览器中的检查元素结合使用。任何关于如何对其
我需要获取所有文章标题的列表。但由于某种原因,Selenium 返回了文章 WebElement 的同一实例 3 次。网页 HTML 如下所示:
列表中的第一个很容易,因为您可以使用查找元素。我找到该元素并需要从前面和后面的 div 中获取信息。对于列表中的“n”元素,用于移动/向后到其他关联 div 的 xPath 语法是什么? 我尝试了各种
我正在尝试在我的框架中创建一个显式等待方法来处理用户的输入。该方法应该处理所有类型的搜索:id、xpath 和 css。但是,当我尝试测试此方法时,错误返回一个奇怪的错误 显式等待方法 public
我正在尝试查找从 PCA Predict API 生成的元素(可在此链接中找到)。 http://www.pcapredict.com/en-gb/address-capture-software/
来自维基文档 https://github.com/SeleniumHQ/selenium/wiki/PageFactory我发现,如果脚本使用 eg. 找到了一些元素@FindBy(id = "q"
代码 1 resultsBoard.findElements(By.css(mySelector)).then(function(elements) { elements.forEach(func
我这里的代码行是: List element = driver.findElements(By.xpath("*")); for(int i=0; i element = driver.findEle
在使用 Selenium 网络测试时,有几种方法可以识别 WebElements。 根据我的经验,我使用过以下选择器: 类名 - By.className() CSS 选择器 - By.cssSele
我是一名优秀的程序员,十分优秀!