如何使用python selenium单击弹出窗口中的按钮?

dni*_*lta 4 python selenium xpath selenium-webdriver

我有一个关于弹出窗口上的单击按钮的问题。图形界面如下: 图形界面

HTML 内容如下: HTML

我正在尝试使用 python selenium 以多种方式单击“确定”按钮:例如:

driver.switch_to_alert()
driver.find_element_by_id("YesBtn").click()
Run Code Online (Sandbox Code Playgroud)

或者

driver.switch_to_alert()
driver.find_element_by_xpath("//div[@id='YesBtn']").click()
Run Code Online (Sandbox Code Playgroud)

或者

driver.switch_to_alert()
driver.find_element_by_xpath("//input[@id='YesBtn']/html/body/div/div/div/div/div[3]").click()
Run Code Online (Sandbox Code Playgroud)

但我总是收到如下错误消息:

Unable to locate element: {"method":"id","selector":"YesBtn"}
Run Code Online (Sandbox Code Playgroud)

有没有人可以帮我更正代码?非常感谢。

Deb*_*anB 5

根据您共享的HTML,它不是Alert而是Modal Dialog Box。要单击文本为OK的元素,您必须引入WebDriverWait in-conjunction,并将expected_conditions子句设置为element_to_be_clickable如下:

WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//input[@class='btn btn-primary' and @id='YesBtn']"))).click()
Run Code Online (Sandbox Code Playgroud)


小智 2

alert = driver.switch_to_alert()
alert.accept()
Run Code Online (Sandbox Code Playgroud)

这将返回当前打开的警报对象。有了这个对象,您现在可以接受、忽略、阅读其内容,甚至可以输入提示。