如何使用 Python 和 Selenium 从 Javascript alert 中提取文本?
我们可以借助 Alert 类下的 text 方法从 Javascript alert 中提取文本。alert 本质上是浏览器弹出窗口,用于驳回或接受输入的数据。
所有这些操作都是由 Selenium 通过类 selenium.webdriver.common.alert.Alert(driver) 执行的。它具有提取特定 alert 上的文本、接受和驳回这些浏览器弹出窗口的方法。
无法通过简单地从 html 代码中侦察来识别 alert 上的元素。这是因为这些被认为是由 Javascript 实现的。
Selenium alert 方法如下所示:
accept() – 此方法接受 alert 弹出窗口。
语法 –
a = Alert(driver) a.accept()
dismiss() – 此方法驳回 alert 弹出窗口。
语法 –
a = Alert(driver) a.dismiss()
send_keys(value) – 此方法在 alert 弹出窗口中键入文本。
语法 –
a = Alert(driver) a.send_keys("Yes")
text – 此方法从 alert 弹出窗口中提取文本。
语法 –
a = Alert(driver) print(a.text)
switch_to.alert – 此方法将焦点切换到 alert。
语法 –
a = driver.switch_to.alert
示例
从 alert 中提取文本的代码实现。
from selenium import webdriver from selenium.webdriver.common.alert import Alert #browser exposes an executable file #Through Selenium test we will invoke the executable file which will then #invoke actual browser driver = webdriver.Chrome(executable_path="C:\chromedriver.exe") # to maximize the browser window driver.maximize_window() #get method to launch the URL driver.get("https://tutorialspoint.com/selenium/selenium_automation_practice.htm") #to refresh the browser driver.refresh() #click on submit button driver.find_element_by_xpath("//button[@name='submit']").click() a = driver.switch_to.alert # printing the alert text in console print(a.text) # dismissing the alert pop up a.dismiss() #to close the browser driver.close()
广告