Selenium / Python Jquery弹出窗口

问题描述 投票:0回答:1

我试图在我的localhost上单击“确定”以获取使用Jquery生成的弹出窗口。我尝试切换到无效的窗口

handleName = driver.window_handles
driver.switch_to.window(handleName)

然后我也尝试做一个javascript弹出窗口,但它是一个Jquery所以它不会工作

alert = browser.switch_to_alert()
alert.accept()
browser.close()

我的其他选择是什么?

javascript python jquery selenium
1个回答
1
投票

driver.window_handles返回所有打开的窗口的列表。刚刚尝试了switch_to.window(),它引发了错误,因为它只需要一个名称而不是列表。

  1. 如果jquery生成实际的浏览器窗口,您可以通过其名称/标题切换到弹出窗口,如果它有一个: driver.switch_to.window(“警报弹出!”)

在当前和弹出窗口具有相同标题的情况下,我使用以下内容:

current_window = driver.current_window_handle
_handles = driver.window_handles
<popup opening button>.click()
WebDriverWait(driver, timeout).until(
    expected_conditions.new_window_is_opened(_handles))
try:
    #find new window handle
    popup_window = (h for h in
            driver.window_handles if h != current_window).next()
except StopIteration:
    raise Exception("No popup!")
  1. 如果jquery生成一些弹出式样的<div>(不是浏览器窗口),那么你只需要像使用driver.find_element_by _ <...>页面上的任何其他元素一样找到它。
© www.soinside.com 2019 - 2024. All rights reserved.