很难尝试在弹出窗口中找到一个元素。切换框架和窗口无济于事。原始源代码中找不到元素。弹出后len(driver.window_handles)也= 1。这是我在弹出窗口处于活动状态时尝试的内容。
Container.Instance.Get<IClientCodeValidator>(clientName.ToUpper())
这是在Firebug中显示的html
windows = driver.window_handles
num_of_windows = len(windows)
print (num_of_windows)
driver.switch_to_window(driver.window_handles[1])
wait.until(lambda driver: driver.find_element_by_css_selector('.suv.suv-deca.suv-open'))
driver.find_element_by_css_selector('.suv.suv-deca.suv-open').click()
答案 0 :(得分:0)
如果len(driver.window_handles)
的结果是1
,正如您所提到的那样driver.switch_to_window(driver.window_handles[1])
,显然应该引发http.client.CannotSendRequest
例外,因为只有一个窗口可用。试试吧
wait.until(lambda driver: driver.find_element_by_css_selector('.suv.suv-deca.suv-open'))
driver.find_element_by_css_selector('.suv.suv-deca.suv-open').click()
无需切换到窗口,警报等