所以我对python 还很陌生,但我开始了解事物是如何协同工作的,但是对于这个问题,我没有找到任何解决方案。
所以我的问题是我正在用python制作一个简单的机器人,它可以打开 Youtube 并搜索特定的关键字,现在我已经尝试了这个send.keys
方法,但它不起作用,因为我想使用ChromeWebDriver
无法发送的特殊字符chromedriver only supports characters in the bmp
问题!
因此,我使用GeckoDriver Firefox 探索了我的选项 1,是的,它确实有效!但是,我不能让 Firefox 未被检测为机器人!
选项 2 是使用execute_script
ChromeWebDriver 的方法,它最初在 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)
任何帮助将不胜感激,也请原谅我用来解释的术语,因为我是新手,我只想解释一切。