0

Python 2.7 バインディングを使用して、Selenium と HhantomJS を介して自動化したい仕事があります。問題は、自動化しようとしている Web サイトに 2 つのドロップボックスがあることです。最初のドロップボックスは 2 番目のドロップボックスのコンテンツをロードし、2 番目のドロップボックスはコンテンツを Web サイトにロードします。

これのすべての組み合わせを取得したい。だから私は次のコードを書いた:

with contextlib.closing(webdriver.PhantomJS(phantomjs)) as driver:
driver.get(URL)
soup = BeautifulSoup(driver.page_source,"lxml")
firstmenu = driver.find_element_by_name("ctl00$Body$Browse1$ddlFosList");
firstmenuoptions = firstmenu.find_elements_by_tag_name('option')
firstmenuoptionsiter =iter(firstmenuoptions)
next(firstmenuoptionsiter)
for firstmenuoption in firstmenuoptionsiter:
    firstmenuoption.click()
    wait = ui.WebDriverWait(driver, 60)
    wait.until(lambda driver: driver.find_element_by_name("ctl00$Body$Browse1$ddlFosList"))
    secondmenu = driver.find_element_by_id("ctl00_Body_Browse1_ddlCourseBlockList")
    secondmenuoptions = secondmenu.find_elements_by_tag_name('option')
    for secondmenuoption in secondmenuoptions:
        print secondmenuoption.text

ただし、print secondmenuoption.text 行で StaleElementReference 例外が発生します。これはおそらく、最初のメニューが選択されたときにページがリロードされるためです。続行する方法についてのアイデアはありますか?

4

1 に答える 1