【问题标题】:Selenium getText() not working on htmlunitdriverSelenium getText()不适用于htmlunitdriver
【发布时间】:2015-06-02 17:55:59
【问题描述】:

我环顾四周,找不到帮助我弄清楚代码中发生了什么的具体答案。

我正在使用 htmlunitdriver 运行 selenium webdriver 测试。我只是为了学习目的在 photobucket 上上传图片。我用过 FirefoxDriver,它工作得很好。然后我尝试使用 htmlunitdriver 并且我的 IDE 说代码正在运行(我刚刚将 FirefoxDriver 更改为 htmlunitdriver)但是每当我检查我的相册时,我都看不到图片。我的第一个猜测是无头浏览器没有等待图片上传,所以它就离开了,所以我添加了一些丑陋的睡眠来检查它,但仍然无法正常工作!

这是代码

driver.get("http://s394.photobucket.com/upload/links");
    Thread.sleep(3000);
    driver.findElement(By.id("urlInput")).sendKeys("photo_link");
    driver.findElement(By.id("uploadBtn")).click();
    Thread.sleep(3000);
    String text = driver.findElement(By.className("progressCount")).getText();
    driver.findElement(By.id("goalbum")).click();
    driver.close();

getText() 用于类似这样的 HTML 元素。

<div class="progressCount" style="width: 711px;">100%</div>

这是一个加载栏。这样做的目的是让 webdriver web 等待直到栏宣布它已满才能继续并关闭驱动程序。

每当我尝试使用 getText 时,Intellij 都会从 DefaultCssErrorHandler 中引发一系列与“样式规则”相关的警告和错误,但字符串仍然为空。

【问题讨论】:

  • 试试 CssSelector 怎么样? driver.findElement(By.cssSelector(".progressCount")).getText();

标签: java selenium selenium-webdriver htmlunit htmlunit-driver


【解决方案1】:

您也可以尝试以下操作:

driver.findElement(By.cssSelector("div.progressCount")).getText();

【讨论】:

  • 嘿 Aru,我尝试实现该行,但它仍然会带来“com.gargoylesoftware.htmlunit.DefaultCssErrorHandler 错误”它确实适用于 FireFoxDriver。我开始认为它是 htmlunitdriver。不过,我没有那么有信心做出结论。
  • 它在我的最后工作正常。您尝试使用有效的图像 url。否则您将收到“请输入有效的图像 URL”消息,此 div 将被隐藏,您将无法获得价值。
  • 当我尝试使用无效的图像 url 时,我没有得到这个值。当我尝试使用有效的图像 URL 时,我得到了这个元素的值。我在 FF 中尝试过。
  • 你能提供你使用的链接吗?
  • 对不起,我指的是图片网址
猜你喜欢
  • 2017-08-13
  • 1970-01-01
  • 1970-01-01
  • 2015-11-29
  • 1970-01-01
  • 2013-12-19
  • 2021-03-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多