我有一份工作,我想使用 Python 2.7 绑定通过 Selenium 和 HhantomJS 实现自动化。问题是我试图自动化的网站有两个保管箱。第一个 Dropbox 加载第二个 Dropbox 的内容,第二个 Dropbox 依次加载网站上的内容。
我想得到这个的所有组合。所以我写了以下代码:
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 异常。这可能是因为在选择第一个菜单时页面会重新加载。关于如何进行的任何想法?