使用selenium与弹出打印对话框交互不起作用

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

我正在尝试在点击网页上的打印按钮后弹出的打印对话框上进行交互(设置页面大小等选项)。我对代码的尝试是:

win_before = driver.current_window_handle
driver.find_element(By.XPATH,'/html/body/div/div/div1/div/div/main/div/div/div/div[2]/div/div/div[2]/button ').click() # 点击网页上的打印按钮
时间.睡眠(2)
弹出窗口 = 0
对于 driver.window_handles 中的句柄:
如果句柄!= win_before:
弹出窗口 = 句柄
打破
driver.switch_to.window(弹出窗口)
时间.睡眠(5)
elem = driver.execute_script("返回 document.querySelector('print-preview-app')")
打印(elem.get_attribute('innerHTML'))

此时,由于程序已切换到弹出的对话框窗口,我们应该能够使用 selenium 方法与框中的元素进行交互,但我没有成功。所以我改用这种方式使用查询选择器,但我仍然找不到任何元素。
Html of the print dialogue box

python selenium selenium-chromedriver
2个回答
0
投票

您是否尝试过使用警报,新窗口可能是一个警报,并交换为类似

Alert alert = driver.switchTo().alert();
的内容而不是浏览器窗口。如果它是一个浏览器元素,您可以在单击并使用该元素之前尝试使用操作或 javascript 移动到该元素。抱歉,如果这不是您需要的 - 希望这会有所帮助。


0
投票

如何使用 Selenium 和 Python 单击打印对话框的“打印”按钮。 Click here to see the image, whatever the issue is.

© www.soinside.com 2019 - 2024. All rights reserved.