selenium.webdriver.support.wait在python中的多种定位方法实例分享
发布时间:2023-12-25 08:33:48
在Python中,selenium.webdriver.support.wait 提供了多种定位元素的方法,可以等待特定条件满足后再进行操作。下面是一些常用的方法及其使用示例。
1. visibility_of_element_located
这个方法用于等待元素在页面上可见后再进行操作。例如,等待一个按钮在页面上可见后点击它。
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")
# 等待按钮可见后点击
button = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.ID, "button_id")))
button.click()
2. presence_of_element_located
这个方法用于等待元素在DOM中存在后再进行操作。例如,等待一个input框存在后输入文本。
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")
# 等待输入框存在后输入文本
input_box = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "input_id")))
input_box.send_keys("Hello World")
3. element_to_be_clickable
这个方法用于等待元素在页面上可点击后再进行操作。例如,等待一个链接在页面上可点击后点击它。
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")
# 等待链接可点击后点击
link = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.LINK_TEXT, "click_link")))
link.click()
4. text_to_be_present_in_element
这个方法用于等待特定的文本出现在元素中后再进行操作。例如,等待文本显示在一个段落中后进行后续操作。
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")
# 等待文本出现在一个段落中后进行后续操作
paragraph = WebDriverWait(driver, 10).until(EC.text_to_be_present_in_element((By.ID, "paragraph_id"), "Hello World"))
# 执行后续操作
5. frame_to_be_available_and_switch_to_it
这个方法用于等待一个frame可用后再进行操作,并切换到该frame。例如,等待一个frame可用后切换到该frame进行后续操作。
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")
# 等待frame可用后切换到该frame进行后续操作
frame = WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.ID, "frame_id")))
# 执行后续操作(操作frame内的元素)
以上是selenium.webdriver.support.wait 在Python中的一些常用定位方法及其使用示例。这些方法可以根据具体的需求选择合适的方法来等待元素的出现并进行相应的操作。
