0

所以我对python 还很陌生,但我开始了解事物是如何协同工作的,但是对于这个问题,我没有找到任何解决方案。

所以我的问题是我正在用python制作一个简单的机器人,它可以打开 Youtube 并搜索特定的关键字,现在我已经尝试了这个send.keys方法,但它不起作用,因为我想使用ChromeWebDriver无法发送的特殊字符chromedriver only supports characters in the bmp问题!

因此,我使用GeckoDriver Firefox 探索了我的选项 1,是的,它确实有效!但是,我不能让 Firefox 未被检测为机器人!

选项 2 是使用execute_scriptChromeWebDriver 的方法,它最初在 Google 搜索中确实有效,但后来我想将它用于 Youtube,但没有任何反应。

我运行我的脚本浏览器工作 youtube 页面已加载,但没有任何反应脚本完成了 20 年代的睡眠并正常存在,但没有在搜索栏中输入任何内容,或者我的控制台中没有任何错误!

也许元素没有加载?但是我在每行代码之后放置了 20 秒sleep以确保页面有足够的时间正确加载我尝试使用Find_by_id | xPath | class_name仍然没有

我试图在执行输入文本行之前检查元素是否存在,但仍然没有

另外,我在输入文本之前尝试过 .click 元素,搜索栏突出显示点击有效,但仍然没有文本,什么也没有。

至于我试图输入到搜索栏中的字符是这样的:

不能通过send.key方法发送

我的代码:

import undetected_chromedriver.v2 as uc
from time import sleep 
import jdk
from selenium.webdriver.common.keys import Keys 
from selenium.webdriver.common.by import By

if __name__ == '__main__':

    driver = uc.Chrome()
    driver.get('https://youtube.com')
    sleep(20)
   
    driver.execute_script("document.getElementById('search').checked = true;")
    print('Searching for Element')
    sleep(20)

    Elem_nt = driver.find_element(By.XPATH, "/html/body/ytd-app/div/div/ytd-masthead/div[3]/div[2]/ytd-searchbox/form")
    print('Finding Element Now...')
    sleep(20)

    driver.find_element(By.XPATH, "/html/body/ytd-app/div/div/ytd-masthead/div[3]/div[2]/ytd-searchbox/form").click()
    print('Clickling Element Now')
    sleep(20)
    
    driver.execute_script("arguments[0].value = 'vid_title';", Elem_nt)
    print('input Text Now')
    sleep(20)

任何帮助将不胜感激,也请原谅我用来解释的术语,因为我是新手,我只想解释一切。

4

0 回答 0