2017-07-07 59 views
0

我有一个由Django构建的Web应用程序,前端由React构建。我试图用行为和硒测试bdd。我使用Chrome网络驱动程序和phantomjs运行测试,但测试只通过使用chrome传递。我在幻像上运行时捕获了一个截图,并且看到该页面未完全呈现。请提供一些关于这个问题的建议。我是否需要进一步配置以使用phantomjs进行测试。谢谢。BDD - 在Chrome上测试通过,但不在Phantomjs上

回答

0

尝试在未在Phantomjs上呈现的页面部分上存在的定位符(waitForElementToBePresent)上添加显式等待。

0

你有3种选择:

implicitly_wait:

隐等待意味着,它会等待一个最大的x秒,以搜索元素,所以如果你元素将4后出现如果您将隐式等待时间设置为大于4秒,则秒数会显示在第二位。

创建实例后使用driver.implicitly_wait(x)

explicitly_wait:

明确等待意味着它会等待x秒,它会搜索元素之后通过秒钟,如果你设置10秒,4秒后,该元素将出现元素将以6秒的延迟定位。

使用driver.explicitly_wait(x)创建实例

time.sleep

后,你可以把你的程序睡觉,等待页面提交一些动作后完全加载。

使用time.sleep(x)提交表单后,单击按钮或加载页面。

1

这是PhantomJS(页面未完全呈现)的常见问题,并且通常不是可以通过显式/隐式等待来修复的问题。为您的代码添加长时间(5秒)的睡眠并拍摄另一张截图。

如果页面已完全呈现,请按照@Alex Lucaci的说明添加(理想情况下)显式等待。

如果页面还没有完全渲染,PhantomJS在这种情况下不会为你工作。就我个人而言,我建议不要使用PhantomJS,因为它有许多方面的问题,但也因为你为什么要在浏览器上测试,没有人使用它作为他们的实际浏览器?

相关问题