0
点赞
收藏
分享

微信扫一扫

python爬虫(二)爬取国家博物馆的信息

荷一居茶生活 2024-11-18 阅读 12
  1. 元素定位语法
    • 通过ID定位:使用find_element_by_id方法,传入元素的ID属性值作为参数。例如,定位一个ID为username的输入框:
element = driver.find_element_by_id("username")
  • 通过名称定位:使用find_element_by_name方法,根据元素的名称属性来定位。比如定位一个名称为password的密码输入框:
element = driver.find_element_by_name("password")
  • 通过XPath定位find_element_by_xpath方法允许使用XPath表达式来定位元素。XPath是一种用于在XML和HTML文档中定位节点的语言。例如,定位一个具有特定文本内容的按钮:
element = driver.find_element_by_xpath("//button[text()='提交']")
  • 通过CSS选择器定位:使用find_element_by_css_selector方法,通过CSS选择器规则来定位元素。例如,定位一个类名为nav - item的导航栏项目:
element = driver.find_element_by_css_selector(".nav - item")
  1. 操作元素语法
    • 输入文本到输入框:定位到输入框元素后,使用send_keys方法输入文本。假设已经定位到一个输入框元素input_element,输入用户名:
input_element.send_keys("张三")
  • 点击元素(如按钮、链接等):使用click方法。例如,定位到一个按钮元素button_element并点击:
button_element.click()
  • 获取元素属性:使用get_attribute方法获取元素的属性值。例如,获取一个链接元素link_elementhref属性:
href_value = link_element.get_attribute("href")
  • 获取元素文本内容:对于一些元素(如标签、按钮等),可以使用text属性获取其显示的文本内容。例如,获取一个标签元素label_element的文本:
text_content = label_element.text
  1. 等待元素出现的语法(使用WebDriverWait
    • 首先要从selenium.webdriver.support.ui导入WebDriverWait,从selenium.webdriver.support导入expected_conditions并简称为EC,从selenium.webdriver.common.by导入By
    • 例如,等待一个ID为result的元素出现,最长等待10秒:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.ID, "result")))
  1. 处理下拉框语法(使用Select类)
    • selenium.webdriver.support.ui导入Select类。
    • 首先定位下拉框元素,然后使用Select类包装它。例如,定位一个ID为fruitSelect的下拉框:
from selenium.webdriver.support.ui import Select

dropdown_element = driver.find_element_by_id("fruitSelect")
select = Select(dropdown_element)
  • 可以通过select_by_value(根据选项的值选择)、select_by_visible_text(根据选项的可见文本选择)或select_by_index(根据选项的索引选择)来选择下拉框中的选项。例如,根据选项的值选择:
select.select_by_value("apple")
  1. 处理警告框语法
    • 当出现警告框时,使用driver.switch_to.alert获取警告框对象。
    • 获取警告框文本:alert_text = alert.text
    • 接受警告框(点击“确定”按钮):alert.accept()
    • 取消警告框(点击“取消”按钮):alert.dismiss()
    • 对于包含输入框的提示框,还可以使用alert.send_keys("输入的文本")来向输入框输入文本。
  2. 多窗口切换语法
    • 获取所有窗口句柄:window_handles = driver.window_handles
    • 切换到指定窗口:driver.switch_to.window(window_handle),其中window_handle是要切换到的窗口的句柄。
    • 获取当前窗口句柄:current_window_handle = driver.current_window_handle
举报

相关推荐

0 条评论