我点击了一个打开一个小窗口/弹出窗口/iframe的链接,弹出窗口有Xpath:
//html/body/div[2]
IE。它没有window_id,但在firebug中,标识符将窗口显示为a <div class="some_name">
,所以我假设它是一个弹出窗口;如我错了请纠正我。
当我使用 selenium IDE 的 selectPopup 时,它在从主窗口切换到 popup/new_window 时工作正常,但是在导出到 webdriver-python 时它没有该选项。因此,我尝试使用driver.switch_to_window
andswitch_to_frame
与上面提到的 xpath 一起使用,但没有运气,即。driver.switch_to_frame(driver.find_element_by_xpath("//html/body/div[2]"))
抛出错误:NoSuchElementException
那是因为它无法选择 iframe。
因为它在 Selenium IDE 中运行良好,所以我将它导出到 python-webdriver,它将 wait_for_element 子句转换为
for i in range(60):
try:
if self.is_element_present(By.XPATH, "//*[@id='heading']/div[2]/div/div/ul/li[2]/a"): break
except: pass
time.sleep(1) else: self.fail("time out")
返回上述错误
详细的 html:
//*[@id='heading']/div[2]/div/div/ul/li[2]/a
是元素的 xpath,作为 html,这就是它的<a href="/my_url/test/Home/">Home</a>
本质:`
<div class="help">
<div class="page-header">
<div id="heading">
<div id="search">
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<ul class="nav">
<li class="active">
<li>
<a href="/my_url/test/Home/">Home</a>
</li>
<li>
<li>
<li>
</ul>
<form class="navbar-form pull-right">
</div>
</div>
</div>
</div>`