- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 PhantomJS 和 GhostDriver for Java 从 eclipse IDE 运行一个简单的 GoogleSuggest 示例,但是它没有通过 Xpath 找到任何元素,如果我使用其他驱动程序(例如 Firefox),我可以使用相同的 Xpath 表达式找到元素。有人可以让我知道我在这里做错了什么吗? GhostDriver 是否支持 Xpath,我是否缺少 Maven 依赖项中的任何内容?
以下行始终返回空列表。
List<WebElement> allSuggestions = driver.findElements(By.xpath("//td[@class='gssb_a gbqfsf']"));`
任何帮助将不胜感激!谢谢。
我的简单类(class)
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.phantomjs.PhantomJSDriver;
import org.openqa.selenium.phantomjs.PhantomJSDriverService;
import org.openqa.selenium.remote.DesiredCapabilities;
public class GoogleSuggest {
public static void main(String[] args) throws Exception {
// The Firefox driver supports javascript
//WebDriver driver = new PhantomJSDriver();
DesiredCapabilities capabilities = DesiredCapabilities.phantomjs();
capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,
"/usr/local/bin/phantomjs");
PhantomJSDriver driver = new PhantomJSDriver(capabilities);
// Go to the Google Suggest home page
driver.get("http://www.google.com/webhp?complete=1&hl=en");
// Enter the query string "Cheese"
WebElement query = driver.findElement(By.name("q"));
query.sendKeys("Cheese");
// Sleep until the div we want is visible or 5 seconds is over
long end = System.currentTimeMillis() + 5000;
while (System.currentTimeMillis() < end) {
WebElement resultsDiv = driver.findElement(By.className("gssb_e"));
// If results have been returned, the results are displayed in a drop down.
if (resultsDiv.isDisplayed()) {
break;
}
}
// And now list the suggestions
List<WebElement> allSuggestions = driver.findElements(By.xpath("//td[@class='gssb_a gbqfsf']"));
for (WebElement suggestion : allSuggestions) {
System.out.println(suggestion.getText());
}
}
}
Eclipse 控制台输出:
Jan 01, 2014 2:37:14 PM org.openqa.selenium.phantomjs.PhantomJSDriverService <init>
INFO: executable: /usr/local/bin/phantomjs
Jan 01, 2014 2:37:14 PM org.openqa.selenium.phantomjs.PhantomJSDriverService <init>
INFO: port: 23886
Jan 01, 2014 2:37:14 PM org.openqa.selenium.phantomjs.PhantomJSDriverService <init>
INFO: arguments: [--webdriver=23886, --webdriver-logfile=/home/general/workspace/TestSample/phantomjsdriver.log]
Jan 01, 2014 2:37:14 PM org.openqa.selenium.phantomjs.PhantomJSDriverService <init>
INFO: environment: {}
PhantomJS is launching GhostDriver...
[INFO - 2014-01-01T19:37:14.707Z] GhostDriver - Main - running on port 23886
log4j:WARN No appenders could be found for logger (org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
[INFO - 2014-01-01T19:37:15.345Z] Session [1e2756e0-731c-11e3-b767-e95df6be38fb] - _decorateNewWindow - page.settings: {"XSSAuditingEnabled":false,"javascriptCanCloseWindows":true,"javascriptCanOpenWindows":true,"javascriptEnabled":true,"loadImages":true,"localToRemoteUrlAccessEnabled":false,"userAgent":"Mozilla/5.0 (Unknown; Linux x86_64) AppleWebKit/534.34 (KHTML, like Gecko) PhantomJS/1.9.2 Safari/534.34","webSecurityEnabled":true}
[INFO - 2014-01-01T19:37:15.345Z] Session [1e2756e0-731c-11e3-b767-e95df6be38fb] - page.customHeaders: - {}
[INFO - 2014-01-01T19:37:15.345Z] Session [1e2756e0-731c-11e3-b767-e95df6be38fb] - CONSTRUCTOR - Desired Capabilities: {"platform":"ANY","browserName":"phantomjs","phantomjs.binary.path":"/usr/local/bin/phantomjs","version":""}
[INFO - 2014-01-01T19:37:15.345Z] Session [1e2756e0-731c-11e3-b767-e95df6be38fb] - CONSTRUCTOR - Negotiated Capabilities: {"browserName":"phantomjs","version":"1.9.2","driverName":"ghostdriver","driverVersion":"1.0.4","platform":"linux-unknown-64bit","javascriptEnabled":true,"takesScreenshot":true,"handlesAlerts":false,"databaseEnabled":false,"locationContextEnabled":false,"applicationCacheEnabled":false,"browserConnectionEnabled":false,"cssSelectorsEnabled":true,"webStorageEnabled":false,"rotatable":false,"acceptSslCerts":false,"nativeEvents":true,"proxy":{"proxyType":"direct"}}
[INFO - 2014-01-01T19:37:15.346Z] SessionManagerReqHand - _postNewSessionCommand - New Session Created: 1e2756e0-731c-11e3-b767-e95df6be38fb
[INFO - 2014-01-01T19:42:14.705Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW
[INFO - 2014-01-01T19:47:14.754Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW
我的 Maven 条目:
<dependency>
<groupId>com.github.detro.ghostdriver</groupId>
<artifactId>phantomjsdriver</artifactId>
<version>1.0.4</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.39.0</version>
</dependency>
最佳答案
这可能有效。忽略以前的工具 - 它是我们团队构建的更多内部产品,我们正在将其开源。
在此之前您可以探索:http://yslow.org/phantomjs/
关于java - PhantomJS GhostDriver XPath 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20872537/
我正在尝试使用 phantomjs、ghostdriver 和 Protractor 在我的笔记本电脑上运行 e2e 测试。我运行以下命令: phantomjs --webdriver=5000 gu
我有一个单元测试,当我通过 python manage.py test 运行它时它通过了,但是当我从 PyCharm 中运行它时失败了。 def test_alpha(self): from
问题很简单,但一些上下文可能会有所帮助。 我正在尝试在使用 selenium 和 phantomjs 作为下载器时部署scrapy。但问题是它在尝试部署时一直说权限被拒绝。所以我想改变ghostdri
我正在尝试使用 phantomJS 和 Ghostdriver 截取页面的屏幕截图。 这是我的代码: import java.io.File; import java.net.URL; import
我正在尝试使用 PhantomJS 作为 PHPUnit Selenium 测试的浏览器。 我已将 Selenium 设置为以网格模式运行,并使用 webdriver 启动 phantomjs,并将其
我正在尝试使用 PhantomJS 和 GhostDriver for Java 从 eclipse IDE 运行一个简单的 GoogleSuggest 示例,但是它没有通过 Xpath 找到任何元素
这个问题在这里已经有了答案: Selenium/PhantomJS raises error (4 个答案) 关闭 7 年前。 我正在运行一个包含 selenium 组件的代码,它需要 phanto
在我使用 GhostDriver (PhantomJS) 对 Selenium 进行的第一个非常简单的测试中,测试通过了,但 PhantomJS.exe 没有退出。我在 Windows 7、Phant
我正在使用 PhantomJS 和 Selenium 抓取网站。我的问题是,在检查了大约 50 个 URL 后,我出现了一个错误: selenium.common.exceptions.WebDriv
我在基于 Java 的项目中使用 GhostDriver 作为 WebDriver 实现。我想拍摄页面的快照。默认页面大小有点尴尬,所以我想控制快照的页面大小。但是,我找不到来自谷歌的任何例子。那么,
我已经使用 Selenium 和 PhantomJS 在 Python 中设置了一个简单的网络抓取脚本。我总共有大约 200 个 URL 需要抓取。该脚本起初运行良好,然后在大约 20-30 个 UR
我正在尝试使用 Java、PhantomJS 和 GhostDriver 截取一些 Twitter 页面的屏幕截图,但我一直得到带有模式对话框(注册模式或 cockies 模式)的屏幕截图。 有人可以
很长一段时间以来,我一直试图让 PhantomJS ( 1.9.7 )/GhostDriver 使用一些自定义设置进行初始化,但完全没有成功。我正在使用 wd.js 作为我的 WebDriver 库,
我尝试在java中隐藏控制台和GhostDriver的日志... - Windows 7. - JDK is in 1.7.0_75 version. - PhantomJS 1.9.7 is inc
我想在特定页面的 PhantomJSDriver 中禁用 JavaScript,但是 this link here说这是不可能的,因为“整个 GhostDriver 将变得不可用”。 谁能解释一下,我
我正在使用 PhantomJs Ghostdriver 和 Java 截取一些网页的屏幕截图。我的问题是 PhantomJs 使用主机的语言环境,所以我需要设置默认语言。我找到了如何为 Chrome
问题:GhostDriver API 尚不支持警报处理。目前有一个可接受的解决方法,即将您自己的 javascript 注入(inject)页面,该页面将处理警报并为您存储它的文本。 我在通过 pyt
我目前有一个 Rails 应用程序,它使用 rspec 和 watir-webdriver 进行集成测试。我想在 headless 浏览器中运行我的集成测试(为了速度目的)。由于我的开发是在 mac
我们正在选择我们的 headless 浏览器 驱动程序解决方案,它将是 Selenium WebDriver 的一些实现。 有GhostDriver ,它利用 PhantomJS在一侧的后端和 Htm
如何清除 PhantomJS + GhostDriver + Selenium WebDriver + WebDriver 客户端系统中每个测试的 cookie? 我的测试过程如下: 以集线器角色启动
我是一名优秀的程序员,十分优秀!