首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不和谐的聊天硒不一致

不和谐的聊天硒不一致
EN

Stack Overflow用户
提问于 2020-08-16 18:52:54
回答 1查看 580关注 0票数 1

我正在使用selenium自动将消息发送到预定服务器中的预定不一致通道。

我成功地导航到服务器,但在定位文本通道时出现了不一致。当我试图在我的服务器上定位一个特定的频道时,它会毫不费力地找到它,但当我在其他服务器上执行此操作时,它无法定位它。

我使用以下命令来定位频道:

代码语言:javascript
复制
channel_element = driver.find_element_by_xpath("//div[@id='channels-5']")

在Chrome中使用Inspect时,我从discord网站获取了特定的id

代码语言:javascript
复制
setup=[{"server":"RL Insider","channel":"channels-23"}, {"server": "Carrot automation server", "channel": "channels-5"}]

import selenium
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager


driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get("https://discord.com/channels/@me")

# login

print(driver.title)
input("input anything when logged in")

def go_to_channel(server, channel_id,message):
    server_element = driver.find_element_by_xpath("//a[@aria-label='"+server+"']")
    driver.execute_script("arguments[0].click();", server_element)
    input("prompt")
    print(driver.current_url)
    try:
        channel_element = driver.find_element_by_xpath("//div[@id='"+channel_id+"']") #this does not work when used on the RL Insider server
        driver.execute_script("arguments[0].click();", channel_element)
        input("prompt")
        text_element = driver.find_element_by_xpath('//*[@id="app-mount"]/div[2]/div/div[2]/div/div/div/div/div[2]/div/main/form/div/div/div/div/div[3]/div[2]')
        text_element.click()
        text_element.clear()
        for c in message[::-1]:
            text_element.send_keys(c)
        text_element.send_keys(Keys.RETURN)
        input("prompt")
    except selenium.common.exceptions.NoSuchElementException:
        print("not found by id xpath")

for i in setup:
    go_to_channel(i["server"],i["channel"],string)

driver.close()

所以我希望两台服务器的行为是一样的,因为我只是找不到有问题的那台。

EN

回答 1

Stack Overflow用户

发布于 2020-08-16 22:56:13

代码的处理速度可能会出现不一致的情况。服务器可以具有更强的计算能力,并且可以更快地运行代码。这样,您尝试查找的元素可能还没有加载。我建议在找到元素之前使用等待元素。

下面是一些示例:

https://seleniumbyexamples.github.io/wait

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63435977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档