2016-11-23 28 views
1

我使用phantomjs版本1.1.0phantomjs-2.1.1.exewindows在phantomjs上找不到的元素但在铬上工作正常

CONTINUE ACTIVATED

这是HTML代码

<div class="right-align" style="display: inline-block; vertical-align: middle; border-radius: 6px; margin-left: 20px; flex-grow: 100;"> 
<div> 
<a class="t-next-pd continue-to-query button-text" style="background-color: rgb(11, 197, 216); color: rgb(255, 255, 255); height: 40px; padding: 0px 16px; text-decoration: none; display: inline-flex; font-weight: 500; font-size: 16px; border-radius: 4px; z-index: 100; cursor: pointer; align-items: center; justify-content: center; border: 1px solid rgb(11, 197, 216); width: 100%;"> 
<span style="display: inline-block;">CONTINUE</span> 
</a> 
</div> 
</div> 

我试图定位使用

  1. 相对的xpath为两个类元素:.//*[@class='t-next-pd continue-to-query button-text'].//*[@class='right-align']
  2. 由文本
  3. 的部分文本
  4. 通过链接
  5. 通过cssSelector
  6. 文本
  7. 以绝对的XPath(最后优先)相关的XPath
  8. 通过类名
  9. JavaScript的执行
  10. 隐等待和明确的等待

什么样的工作

只有输入姓名和年龄时,CONTINUE按钮才会被激活。 这是CONTINUE按钮未激活时的代码。

<div class="right-align" style="display: inline-block; vertical-align: middle; border-radius: 6px; margin-left: 20px; flex-grow: 100;"> 
<div> 
<a class="button-text" disabled="" style="background-color: rgb(199, 199, 199); color: rgb(255, 255, 255); height: 40px; padding: 0px 16px; display: inline-flex; text-decoration: none; font-weight: 500; font-size: 16px; border-radius: 4px; z-index: 100; cursor: pointer; align-items: center; justify-content: center; width: 100%;"> 
<span style="display: inline-block;">CONTINUE</span> 
</a> 
</div> 
</div> 

CONTINUE DEACTIVATED

+0

我在激活的按钮上使用了这个'a.t-next-pd.continue-to-query.button-text'。这是一个CSS选择器,在我的情况下它工作正常。 –

回答

0

在细节填充之后等待一秒钟。 PhantomJS立即搜索激活的继续按钮。这很可能是一个时间问题。继续按钮可能需要500毫秒到1秒才能激活。

因此,当PhantomJS开始搜索激活的按钮时,它无法找到它,因为如果在DOM中不存在。

如果您使用Python,请使用time.sleep(2)。它暂停2秒。这给DOM时间以将未激活的代码更改为激活的代码。

我用这个a.t-next-pd.continue-to-query.button-text找到激活的按钮。这是一个CSS选择器,它在我的测试用例中运行良好:)

将其转换为您正在使用的语言。我正在使用Python: -

# code 
# to 
# fill the form 
time.sleep(2) 
driver.find_element_by_css_selector('a.t-next-pd.continue-to-query.button-text') 
+0

仍然无法正常工作。语言:Java。 我已经使用过: - 1. driver.manage()。timeouts()。implicitlyWait(30,TimeUnit.SECONDS); 2. TimeUnit.SECONDS.sleep(5); 3)Thread.sleep(1000); 所有这些都不起作用。 –

+0

@SaurabhNagpal你能分享更多来自网页的代码和你的Java代码吗?我试着用你给的任何东西,它在我身边运作。它会帮助人们找到问题。如果在分享代码后问题仍然存在,我会建立一个聊天室,在那里我们可以详细讨论它:) –

相关问题