2016-08-21 97 views
0

嗨,我一直在努力學習硒。Python硒檢測錯誤?

我遇到的問題是一個元素沒有被檢測到。我正在使用的html代碼在這裏突出顯示https://gyazo.com/a76608d4c4e9fc3bd29412436604c173。該行代碼停止了我的程序並給了我錯誤https://gyazo.com/72fc72e6488578c9c2a50b71311602c5

我使用來檢測文本區域類的代碼是

comment=driver.find_element_by_xpath("//form[@class='comment-form no-border-top']/div/*[1]") or driver.find_element_by_xpath("//form[@class='comment-form']/div/*[1]") 

因爲有時評論形式之間沒有邊界和註釋的形式進行切換。

我的想法是使用條件賦值運算符檢查例如if(comment!= none):做些什麼,但對我的理解python不允許這樣做。

有關如何做以及我的xpath是否可靠的方法的任何建議?

+0

請將HTML代碼和錯誤消息作爲文本添加到您的問題中,而不是鏈接的圖像。我還編輯了您的問題中的代碼,以我認爲您的意圖。 – mhawke

+0

如果你實際上使用'comment = foo()或bar()',那麼'comment'將是[truthy](https://www.udacity.com/wiki)/cs258/truthiness-in-python)這兩個函數調用的值。 –

回答

0

如果您試圖解決的問題實際上是有條件的分配,那麼您可能想知道兩件不同的事情。

第一個是你可以做:

如果(註釋=無!)

你只需要做這樣的:

comment = Foo() 
if comment is None: 
    comment = Bar() 

二,也許你想嘗試分配comment如果第一次調用拋出一個錯誤而不僅僅是None。如果是這樣,請嘗試使用try

from selenium.common.exceptions import NoSuchElementException 
try: 
    comment = driver.find_element_by_xpath("//form[@class='comment-form no-border-top']/div/*[1]") 
except NoSuchElementException: 
    comment = driver.find_element_by_xpath("//form[@class='comment-form']/div/*[1]")