【发布时间】:2020-12-29 17:30:35
【问题描述】:
import pyautogui as py
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import keyboard
driver = webdriver.Chrome()
driver.get('https://www.youtube.com/watch?v=pcel9QTPx_g&list=RDpcel9QTPx_g&start_radio=1&t=11&ab_channel=%E5%BE%AE%E7%B3%96%E9%80%A2')
elem = driver.find_elements_by_id('video-title')
while True:
if keyboard.is_pressed('`'):
driver.find_element_by_xpath('//*[@id="movie_player"]/div[29]/div[2]/div[1]/button'.click()
for x in elem:
elem.click()
keyboard.wait('f4)
所以我正在尝试使用 python 自动迭代 selenium 中的一堆歌曲播放列表。我正在尝试编写代码,所以当我按下`时,视频将暂停,如果我按下 f4,代码将跳到下一次迭代。 f4 函数工作得很好,但 while 循环内的代码却不行。是因为当代码运行时,当它进入 for 循环时,它就无法再访问 while 循环了?如果你们有任何想法或想简化我的代码,请随时回答!
【问题讨论】:
-
我不确定我是否理解这个问题,但
elem.click()这行对我来说似乎是错误的。elem是一个列表变量,在 for 循环中不会改变。不应该是x.click()吗? -
keyboard.wait('f4)? keyboard.wait('f4')?
-
是的,原来我在 ' 部分犯了一个错误,但不是在我的代码中,只有当我在这里粘贴代码时。 elem.click() 也是错误的,原来我粘贴了错误的代码。我用 for 循环交换了 while 循环,代码可以工作了。
标签: python selenium automation selenium-chromedriver