selenium: 找到页面上的指定元素并点击

一,代码:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By

import time

def change_url(url):
    # 就在当前标签页打开网页
    driver.get(url)
    print(driver.title)
    
    # 获取所有窗口句柄并切换到最后一个
    handles = driver.window_handles
    driver.switch_to.window(handles[-1])

def open_new_url(url):
    # 就在当前标签页打开网页
    driver.execute_script("window.open('"+url+"', '_blank');")

    # 获取所有窗口句柄并切换到最后一个
    handles = driver.window_handles
    driver.switch_to.window(handles[-1])

if __name__ == '__main__':
	
    # 指定驱动路径
    driver_path = '/opt/soft/chromedriver-linux64/chromedriver'
    # 创建Service对象并传入ChromeOptions
    service = Service(driver_path)
    # 得到options
    chrome_options = Options()
    chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
    driver = webdriver.Chrome(options=chrome_options,service=service)
    # 通过JavaScript在新窗口打开URL
    URL = 'https://movie.douban.com/explore?support_type=movie&is_all=false&category=%E7%83%AD%E9%97%A8&type=%E5%85%A8%E9%83%A8'
    open_new_url(URL)
    
    time.sleep(3)
    
    print(driver.page_source)
    
    # colle_btns = driver.find_elements(By.XPATH, "//li[@class='explore-menu-second-tag']")
    colle_btns = driver.find_elements(By.XPATH, "//li[contains(@class,'explore-menu-second-tag')]")
    print("按纽数量:",len(colle_btns))
    for btn in colle_btns:
        print(btn)
        print(btn.text)
        print(btn.get_attribute("class"))
        if btn.text == '日本':
            btn.click()
    time.sleep(3)

 

二,测试效果:

image

 

posted @ 2025-11-22 15:11  刘宏缔的架构森林  阅读(3)  评论(0)    收藏  举报