2016-10-13 5 views
0

検索結果に、検索キーがすべて含まれている必要があることを確認する必要があります。これは、HTMLのソースコードです:Python Selenium - 検索結果を繰り返す

<div id="content"> 
    <h1>Search Results</h1> 
    <a id="main-content" tabindex="-1"></a>  
     <ul class="results"> 

       <li><img alt="Icon for Metropolitan trains" title="Metropolitan trains" src="themes/transport-site/images/jp/iconTrain.png" class="resultIcon"/> <strong>Stop</strong> <a href="/next5/diva/10001218/1">Sunshine Railway Station (Sunshine)</a></li> 

       <li><img alt="Icon for Metropolitan trains" title="Metropolitan trains" src="themes/transport-site/images/jp/iconTrain.png" class="resultIcon"/> <strong>Stop</strong> <a href="/next5/diva/10001003/1">Albion Railway Station (Sunshine North)</a></li>     
     </ul>  
</div> 

私は検索キーと結果を得る入力するには、このコードを書かれているが、それは、検索結果をループに失敗します。

from selenium import webdriver 

driver = webdriver.Chrome('C:/Users/lovea/OneDrive/Documents/Semester 2 2016/ISYS1087/w3-4/chromedriver') 

driver.get('http://www.ptv.vic.gov.au') 

next5Element = driver.find_element_by_link_text('Next 5 departures') 
next5Element.click() 

searchBox = driver.find_element_by_id('Form_ModeSearchForm_Search') 
searchBox.click() 
searchBox.clear() 
searchBox.send_keys('Sunshine') 

submitBtn = driver.find_element_by_id('Form_ModeSearchForm_action_doModeSearch') 
submitBtn.click() 

assert "Sorry, there were no results for your search." not in driver.page_source 

results = driver.find_elements_by_xpath("//ul[@class='results']/li/a") 
for result in results: 
    assert "Sunshine" in result //Error: argument of type 'WebElement' is not iterable 

誰もが何がある教えてくださいそれへの正しい道?ありがとうございました!

答えて

1

あなたは、特定の要素のinnerHTML値は、キーの文字列が含まれているかどうかを確認ではなく、要素自体、私はassert文で間違いを得た

for result in results: 
    assert "Sunshine" in result.text 
+0

ありがとうございました! –

0

を試してみてください。

resultはWebElementなので、参照するテキストはありません。

私はちょうどのように変更します:assert "Sunshine" in result.text

関連する問題