【问题标题】:click youtube button selenium python check my code单击 youtube 按钮 selenium python 检查我的代码
【发布时间】:2017-07-25 06:22:29
【问题描述】:

我正在尝试在 youtube 上点击使用类来播放视频

在这个页面https://likesrock.com使用这个代码

from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0
from selenium.webdriver.support import expected_conditions as EC # available since 2.26.0
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("https://likesrock.com")

element = driver.find_element_by_class_name("ytp-large-play-button ytp-button")
element.click()

但是编译器给了我这个错误

Traceback(最近一次调用最后一次): 文件“C:\Users\youssef\Desktop\python project\xpath.py”,第 25 行,在 element = driver.find_element_by_class_name("ytp-large-play-button ytp-button") 文件“C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py”,第 413 行,在 find_element_by_class_name 中 return self.find_element(by=By.CLASS_NAME, value=name) 文件“C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py”,第 752 行,在 find_element '价值':价值})['价值'] 执行中的文件“C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py”,第 236 行 self.error_handler.check_response(响应) 文件“C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py”,第 192 行,在 check_response 引发异常类(消息、屏幕、堆栈跟踪) NoSuchElementException:消息:无法找到元素:.ytp-large-play-button ytp-button

请帮忙

【问题讨论】:

标签: python python-2.7 selenium selenium-webdriver youtube


【解决方案1】:

您在find_element_by_class_name 中使用复合类,这将不起作用。改成find_element_by_xpath试试

driver.find_element_by_xpath("//*[@class='ytp-large-play-button ytp-button']")

注意:- 您的元素在iFrame 下,所以不要忘记切换到iframe

driver.switch_to.frame(0) 

完整代码:

driver = webdriver.Firefox()
driver.get("https://likesrock.com")
driver.implicitly_wait(20) 
driver.switch_to.frame(0) 
element = driver.find_element_by_xpath("//button[@class='ytp-large-play-button ytp-button']")
element.click()

【讨论】:

  • 非常感谢您的帮助,我不会忘记它,只是我添加了 time.sleep(5) 并且它有效
【解决方案2】:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome("chromedriver.exe")
driver.get('https://youtube.com')

search_bar = driver.find_element_by_xpath('/html/body/ytd-app/div/div/ytd-masthead/div[3]/div[2]/ytd-searchbox/form/div/div[1]/input')
search_bar.send_keys("python")
search_bar.send_keys(Keys.ENTER)

【讨论】:

    【解决方案3】:

    我只是试图通过启动 Youtube 网站来播放视频。

    @Narendra 提供的代码在 Chrome 上运行良好,但无法在 Firefox 上运行。

    driver.get(url)
    element = driver.find_element_by_id("player-container")
    element.click()
    

    以上代码也适用于 Firefox。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-18
      • 1970-01-01
      • 2020-07-28
      • 1970-01-01
      • 2021-08-27
      • 1970-01-01
      • 1970-01-01
      • 2017-11-25
      相关资源
      最近更新 更多