1

Selenium Webdriver には次の問題があります。「ブランド」と「アイテム」をテストしているページには、2 つのドロップダウン メニューがあります。「アイテム」のオプションは、選択したブランドによって異なります。考えられるすべての選択肢を反復して、ブランドとアイテムのペアを印刷しようとしています。Select() を使用して、各ドロップダウン メニューからオプションを選択する 2 つの方法を使用します。

def retryingSelectOption(name,n):
    result=False
    attempts=0
    while attempts<5:
        try:
            element=Select(driver.find_element_by_name(name))
            element.select_by_index(n)
            print element.all_selected_options[0].text
            result=True
            break
        except StaleElementReferenceException:
            pass
        attempts+=1
    return result    

そして .click() を使用:

def retryingClickOption(name,n):
    result=False
    attempts=0
    while attempts<5:
        try:
            driver.find_element_by_name(name).find_elements_by_tag_name("option")[n].click()
            result=True
            break
        except StaleElementReferenceException:
            pass
        attempts+=1
    return result

私の問題は、上記の関数がTrueを返し、選択したオプションを印刷すると正しい答えが表示されても、ランダムな瞬間のように思えます(機能する場合と機能しない場合があります)が、ブラウザには前のオプションが表示されます。したがって、基本的にSeleniumは、正しいオプションを選択したことを通知しますが、ブラウザには前のオプションが表示されます.何が悪いのかわかりません. もう少し確認した後、ブラウザのどこかを手動でクリックすると、オプションが実際に正しい値に更新されるようです。ブラウザがハングするようです。

4

0 に答える 0