1

我对 Selenium Webdriver 有以下问题。我正在测试“品牌”和“项目”的页面上有两个下拉菜单。“项目”的选项取决于您选择的品牌。我正在尝试遍历所有可能的选择并打印品牌-商品对。我使用两种可能的方法从每个下拉菜单中选择一个选项,使用 Select():

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