selenium常用处理alert的方法

本文介绍了如何使用Python的Selenium库来操作网页弹出框。包括接受弹出框、取消弹出框及获取弹出框文本信息的方法,并强调在处理弹出框时,隐式等待不适用,建议采用显式等待如`time.sleep(3)`确保操作准确执行。

1.点击“确定”按钮:

driver.switch_to.alert.accept()

2.点击“取消”按钮:

driver.switch_to.alert.dismiss()

3.获取文本信息:

driver.switch_to.alert.text

 

注意!!!!!!!

处理弹出框时,隐式等待不起作用。隐式等待判断的是页面的加载,点击确认按钮,弹出框出来后,页面并没有刷新过

手动设置等待时间time.sleep(3)

Selenium WebDriver 是一个强大的浏览器自动化工具,提供了多种方法来操作浏览器和定位元素。以下是一些常用Selenium WebDriver 方法及其使用示例: ### 浏览器操作 1. **加载浏览器驱动** 使用 `webdriver.Firefox()` 或 `webdriver.Chrome()` 等方法启动浏览器。 ```python from selenium import webdriver driver = webdriver.Firefox() ``` 2. **打开页面** 使用 `get()` 方法打开指定的网页。 ```python driver.get("https://www.example.com") ``` 3. **关闭浏览器** 使用 `quit()` 方法关闭浏览器并结束 WebDriver 会话。 ```python driver.quit() ``` 4. **最大化窗口** 使用 `maximize_window()` 方法将浏览器窗口最大化。 ```python driver.maximize_window() ``` 5. **设置窗口参数** 使用 `set_window_size(width, height)` 方法设置浏览器窗口的大小。 ```python driver.set_window_size(600, 800) ``` 6. **后退到前一页** 使用 `back()` 方法返回上一页。 ```python driver.back() ``` 7. **前进到后一页** 使用 `forward()` 方法前进到下一页。 ```python driver.forward() ``` 8. **刷新页面** 使用 `refresh()` 方法刷新当前页面。 ```python driver.refresh() ``` ### 元素定位 1. **通过 ID 定位** 使用 `find_element_by_id()` 方法通过元素的 ID 定位。 ```python element = driver.find_element_by_id("element_id") ``` 2. **通过 Name 定位** 使用 `find_element_by_name()` 方法通过元素的 Name 定位。 ```python element = driver.find_element_by_name("element_name") ``` 3. **通过 Class 定位** 使用 `find_element_by_class_name()` 方法通过元素的 Class 名称定位。 ```python element = driver.find_element_by_class_name("element_class") ``` 4. **通过 Tag 定位** 使用 `find_element_by_tag_name()` 方法通过元素的 Tag 名称定位。 ```python element = driver.find_element_by_tag_name("div") ``` 5. **通过 Link 文本定位** 使用 `find_element_by_link_text()` 方法通过超链接的完整文本定位。 ```python element = driver.find_element_by_link_text("Click Here") ``` 6. **通过 Partial Link 文本定位** 使用 `find_element_by_partial_link_text()` 方法通过超链接的部分文本定位。 ```python element = driver.find_element_by_partial_link_text("Click") ``` 7. **通过 CSS 选择器定位** 使用 `find_element_by_css_selector()` 方法通过 CSS 选择器定位。 ```python element = driver.find_element_by_css_selector("input#username") ``` 8. **通过 XPath 定位** 使用 `find_element_by_xpath()` 方法通过 XPath 表达式定位。 - **绝对路径**: ```python element = driver.find_element_by_xpath("/html/body/div[1]/div[2]/div/div/dl[1]/dt/a") ``` - **元素属性**: ```python element = driver.find_element_by_xpath("//input[@id='kw']") ``` - **层级与属性结合**: ```python element = driver.find_element_by_xpath("//form[@id='loginForm']/ul/input[1]") ``` - **逻辑运算符**: ```python element = driver.find_element_by_xpath("//input[@id='kw' and @class='s_ipt']") ``` ### 其他常用操作 1. **输入文本** 使用 `send_keys()` 方法在输入框中输入文本。 ```python element.send_keys("Hello World") ``` 2. **点击元素** 使用 `click()` 方法点击元素。 ```python element.click() ``` 3. **获取元素文本** 使用 `text` 属性获取元素的文本内容。 ```python text = element.text ``` 4. **获取元素属性值** 使用 `get_attribute()` 方法获取元素的属性值。 ```python value = element.get_attribute("value") ``` 5. **等待元素加载** 使用 `WebDriverWait` 和 `expected_conditions` 等待特定条件满足后再执行操作。 ```python from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC element = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.ID, "element_id")) ) ``` 6. **处理弹窗** 使用 `switch_to.alert` 处理浏览器弹窗。 ```python alert = driver.switch_to.alert alert.accept() # 接受弹窗 alert.dismiss() # 取消弹窗 ``` 7. **切换窗口** 使用 `switch_to.window()` 切换到新打开的窗口。 ```python driver.switch_to.window(driver.window_handles[1]) ``` 8. **执行 JavaScript** 使用 `execute_script()` 方法执行 JavaScript 代码。 ```python driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") ``` ### 示例代码 以下是一个完整的示例代码,展示了如何使用 Selenium WebDriver 进行基本的浏览器操作和元素定位: ```python from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 启动浏览器 driver = webdriver.Firefox() # 打开网页 driver.get("https://www.example.com") # 最大化窗口 driver.maximize_window() # 通过 ID 定位元素并输入文本 search_box = driver.find_element_by_id("search") search_box.send_keys("Selenium") # 通过 XPath 定位元素并点击 search_button = driver.find_element_by_xpath("//button[@type='submit']") search_button.click() # 等待特定元素加载 result = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.CLASS_NAME, "result")) ) # 获取元素文本 print(result.text) # 关闭浏览器 driver.quit() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值