2016-11-23 51 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代碼嗎?我試着用你給的任何東西,它在我身邊運作。它會幫助人們找到問題。如果在分享代碼後問題仍然存在,我會建立一個聊天室,在那裏我們可以詳細討論它:) –

相關問題