2016-05-27 3 views
1
up_key.click() 
item = WebDriverWait(driver, 5).until(lambda driver: driver.find_element_by_xpath(element_xpath)) 
if item.text == 'awesome text': 
    driver.quit() 

続行、それは時々、Webページに表示されているAJAXでの新しい要素を作成します。私はそれが時々新しい要素を作成し、常にではない、とその要素のテキストは常にもawesome textではありません言ったように
item = WebDriverWait(driver, 5).until(lambda driver: driver.find_element_by_xpath(element_xpath))要素がセレンに見つからないときに、サイト上のアップキー画像上の<code>up_key.click()</code>クリック

しかし:私は取得しようという新しい要素。

up_key.click()が再びクリックされた場合、AJAXは要素のテキストを変更するか、同じテキストを保持するか、要素を削除します。これは、up_key.click()がクリックするたびにランダムに発生します。

up_key.click()を実行し続けるスクリプトを作成し、それが見つかるまでawesome textする必要があります。以下のような

何か:

item = WebDriverWait(driver, 5).until(lambda driver: driver.find_elements_by_xpath(element_xpath)) 
while item.text != 'awesome text': 
    up_key.click() 
    item = WebDriverWait(driver, 5).until(lambda driver: driver.find_elements_by_xpath(element_xpath)) 

答えて

1

あなたはこのコードを向上させることができるどのようにtryブロック

while True: 
    try: 
     up_key.click() 
     item = WebDriverWait(driver, 5).until(lambda driver: driver.find_element_by_xpath(element_xpath)) 
     if item.text != 'awesome text': 
      continue 
     driver.close() 
    except: 
     print "Not found" 
+0

でテキストを囲む必要があり、これを行うには? downvoteのために尋ねる –

関連する問題