You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium Python实现Roblox游戏轮播图src复制粘贴问题求助

解决Roblox轮播图src获取并粘贴的问题

你的代码存在几个关键问题,导致无法正确获取目标图片的src并粘贴:

  1. 获取src后未保存或写入剪贴板:你调用了get_attribute('src')但没有将结果存储到变量,也没有写入系统剪贴板,因此Ctrl+V粘贴的是剪贴板原有内容
  2. By.CLASS_NAME不支持多类名:Selenium的CLASS_NAME定位器仅能识别单个类,多类组合需要使用CSS选择器(格式为.类名1.类名2.类名3)
  3. 定位器与等待逻辑不匹配:原代码等待的是普通缩略图元素,而非激活状态的轮播项,后续重复获取src的逻辑也未实际使用

以下是修正后的代码(优先采用直接输入内容的方式,避免剪贴板冲突,稳定性更高):

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

# 初始化Chrome浏览器(需确保对应版本的ChromeDriver可用)
driver = webdriver.Chrome()

# 打开目标Roblox游戏页面
driver.get("https://www.roblox.com/games/6661139142/ARMY-Military-Defense-Tycoon")

# 等待激活状态的轮播图图片加载完成,使用精准CSS选择器定位
active_carousel_img = WebDriverWait(driver, 20).until(
    EC.visibility_of_element_located(
        (By.CSS_SELECTOR, '.thumbnail-2d-container.carousel-item.carousel-item-active img')
    )
)

# 获取目标图片的src并保存到变量
img_src = active_carousel_img.get_attribute('src')

# 切换到第二个窗口
driver.switch_to.window(driver.window_handles[1])

# 等待输入框可交互,替换time.sleep为显式等待
input_box = WebDriverWait(driver, 20).until(
    EC.element_to_be_clickable(
        (By.XPATH, '/html/body/div[1]/div[2]/div[3]/div[1]/div[3]/form/div/div/div[2]/div/div[6]/div[2]/div/table[2]/tbody/tr/td[1]/input')
    )
)

# 清空输入框后直接输入获取到的src(无需依赖剪贴板)
input_box.clear()
input_box.send_keys(img_src)

# 后续操作根据需求补充
# driver.close()

额外说明:

  • 如果一定要使用剪贴板方式,可安装pyperclip库(pip install pyperclip),添加pyperclip.copy(img_src)后,再用send_keys(Keys.CONTROL, 'v')粘贴
  • 尽量避免使用绝对XPATH定位输入框,可尝试通过元素的id、name或父级类名构造更简洁的定位器,防止页面结构变动导致定位失效

内容的提问来源于stack exchange,提问作者Lubaba Ell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 00:54:33