使用Selenium向Discord频道发送/richest命令失败求助
解决Discord斜杠命令
/richest在Selenium中无法执行的问题 我尝试用Selenium向Discord频道发送/richest斜杠命令,预期触发命令执行并返回结果,但执行代码后,界面始终停留在命令建议选择状态,无法完成命令执行。
我的代码如下:
# Send message input_box = driver.find_element(By.XPATH, input_box_xpath) input_box.send_keys('/richest') # time.sleep(2) # Wait for 2 seconds after writing message input_box.send_keys(Keys.ENTER) time.sleep(1) # Wait for 1 second after pressing enter
问题原因
Discord的斜杠命令输入后会弹出命令建议面板,此时单次按下ENTER仅用于选中命令选项,而非直接执行;另外固定时长的time.sleep稳定性不足,可能导致命令建议未加载完成就触发了回车操作,进而卡住。
解决方案
方案1:发送两次回车键
通过两次回车完成“选中命令+执行命令”的流程:
input_box = driver.find_element(By.XPATH, input_box_xpath) input_box.send_keys('/richest') time.sleep(2) # 第一次回车选中命令,第二次回车执行命令 input_box.send_keys(Keys.ENTER) input_box.send_keys(Keys.ENTER) time.sleep(1)
方案2:用显式等待替代固定sleep
等待命令建议面板加载完成后再操作,提升稳定性:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC input_box = driver.find_element(By.XPATH, input_box_xpath) input_box.send_keys('/richest') # 等待命令建议面板出现(可根据实际页面元素调整定位器) WebDriverWait(driver, 5).until( EC.presence_of_element_located((By.CSS_SELECTOR, ".commandAutocomplete-19mkUa")) ) input_box.send_keys(Keys.ENTER) input_box.send_keys(Keys.ENTER)
方案3:用Tab键选中命令后回车
通过TAB快速选中第一个命令建议,再执行:
input_box = driver.find_element(By.XPATH, input_box_xpath) input_box.send_keys('/richest') time.sleep(2) input_box.send_keys(Keys.TAB) input_box.send_keys(Keys.ENTER)
内容的提问来源于stack exchange,提问作者Zambaize
相关产品推荐
相关产品推荐

