【问题标题】:Selenium PHPUnit - Not able to find a text on pageSelenium PHPUnit - 无法在页面上找到文本
【发布时间】:2016-03-19 15:27:05
【问题描述】:

selenium PHPUnit 有问题。

PHPUnit version: 3.7.21
OS: Windows7
Selenium Server: selenium-server-standalone-2.48.2

我遇到了一个非常奇怪的情况,我在页面上有一个文本,并且仅在该页面上使用 assertTextPresent() 函数。但它不断失败。

之前我想,可能是因为页面没有正确加载。所以我只是使用pause() 来加载页面。现在我可以看到页面上的文字了。

我还截取了屏幕截图,在那个屏幕截图中我也能看到那个图案。

但是有问题,这个函数无法在页面中找到文本。

任何帮助将不胜感激。

谢谢。

【问题讨论】:

    标签: php selenium phpunit


    【解决方案1】:

    您能否举一个更具体的示例来说明您正在执行哪些步骤以及您正在使用哪些参数?无论如何,您可以像这样等待页面上出现一个元素:

    for ($second = 0; ; $second++) {
        if ($second >= 30) $this->fail("Element not found");
        try {
            if ($value == $this->getText("$locator")) break;
        } catch (Exception $e) {}
        sleep(1);
    }
    

    其中 $value 是您要查找的文本,$locator 是您希望找到该文本的路径。或者(如果您不关心文本需要放在哪里):

    for ($second = 0; ; $second++) {
        if ($second >= 30) $this->fail("\n Text not found");
        try {
            if ($this->isTextPresent("$value")) break;
        }
        catch (Exception $e) {
        }
        sleep(1);
    }
    

    【讨论】:

      【解决方案2】:

      您可以使用此代码作为解决方法

      $txt = $this->byXPath("insert-xpath-of-text-here")->text();
      $this->assertTrue($txt,"text-to-be-found","some-random-error-message-here");
      

      $this->assertTrue($this->byXPath("insert-xpath-of-text-here")->text(),"text-to-be-found","some-random-error-message-here");
      

      我认为指示要找到的文本的定位器可能会解决问题

      【讨论】:

        【解决方案3】:

        $this->waitForPageLoad(1000); 您正在使用此方法 assertElementExistsWithText_W();

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-01-26
          • 2019-12-19
          • 2021-09-05
          • 2017-11-15
          • 1970-01-01
          • 2016-03-19
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多