无法在python </div>中使用selenium webdriver选择<div>窗口

时间:2013-07-24 15:42:14

标签: python selenium-webdriver selenium-ide

我点击了一个链接,打开一个小窗口/弹出/ iframe,弹出窗口有Xpath:

//html/body/div[2]

即。它没有window_id,但在firebug中,标识符将窗口显示为<div class="some_name">所以我假设它是一个弹出窗口;如果我错了,请纠正我。

当我使用selenium IDE的selectPopup时,从主窗口切换到popup / new_window可以正常工作,但是当导出到webdriver-python时,它没有那个选项。所以我尝试使用driver.switch_to_windowswitch_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>`

1 个答案:

答案 0 :(得分:-1)

试试这个:

new Actions(driver).click(driver.findElement(By.xpath("//div[@id='pop-up-window']"))).perform();