按钮在selenium中不可单击,没有错误消息

2024-10-16 20:39:20 发布

您现在位置:Python中文网/ 问答频道 /正文

Picture of error on website

每当我的代码到达最后一行代码时,它都会单击convert按钮,将youtube音乐视频转换为mp3文件(不用担心,我使用的是非版权音乐),但只有网站本身会出现错误:红色框中按钮下方的参数无效。我尝试过其他格式,如.send_key(key.ENTER)或.submit(),但它们都以相同的方式被拒绝。我不建议用这个按钮点击第二个网站,因为它有一些可疑的添加,所以我用brave而不是Chrome。如果有人能抽出时间给我提建议,我将不胜感激,因为我已经花了好几个小时和最后一程了

按钮的HTML代码:

<button id="cvt-btn" class="btn btn-danger mr-1">Convert</button>

完整代码:

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import StaleElementReferenceException

driver_path = "C:/Users/User/Documents/Python_Projects/chromedriver.exe"
brave_path = "C:/Program Files/BraveSoftware/Brave-Browser/Application/brave.exe"
option = webdriver.ChromeOptions()
option.binary_location = brave_path

driver=webdriver.Chrome(executable_path=driver_path, chrome_options=option)

driver.maximize_window()

driver.implicitly_wait(2)
driver.get("https://www.youtube.com/watch?v=MkNeIUgNPQ8&list=PLzCxunOM5WFLNCSF0UEHZqFJJlmdeL71S")
driver.find_element_by_xpath("/html/body/ytd-app/ytd-consent-bump-v2-lightbox/tp-yt-paper-dialog/div[2]/div[2]/div[5]/div[2]/ytd-button-renderer[2]/a/tp-yt-paper-button").click()
lnks=driver.find_elements_by_tag_name("a")
songs = []
double = False
for lnk in lnks:
   link = lnk.get_attribute("href")
   if link != None:
       if "FJJlmdeL71S&index=2" in link:
           for i in songs:
               if link == i:
                   double = True
               else:
                   double = False
           if double == False:
               songs.append(link)

driver.implicitly_wait(2)
driver.get("https://youtubetomp3music.com/en26/")

for i in songs:
    driver.find_element_by_xpath("/html/body/header/div[2]/div/div[2]/form/div/div[1]/input").send_keys(i)
    driver.find_element_by_xpath("/html/body/header/div[2]/div/div[2]/form/div/div[2]/button").click()        
    driver.find_element_by_id("cvt-btn").click()

Tags: path代码importdivbydriverlinkbutton
1条回答
网友
1楼 · 发布于 2024-10-16 20:39:20

我没有完全运行您的程序,所以我不知道songs列表中到底存储了什么

下面的代码是从您执行此操作的那一刻开始的driver.get("https://youtubetomp3music.com/en26/"),我正在执行

driver.get("https://youtubetomp3music.com/en26/download?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DgrL4JMs0hDc%26list%3DRDgrL4JMs0hDc%26start_radio%3D1")

只需到达最后一页,我们就可以单击转换按钮。

代码:-

driver = webdriver.Chrome(driver_path)
driver.maximize_window()
driver.get("https://youtubetomp3music.com/en26/download?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DgrL4JMs0hDc%26list%3DRDgrL4JMs0hDc%26start_radio%3D1")
wait = WebDriverWait(driver, 20)
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button[id='cvt-btn']"))).click()

 

导入

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

相关问题 更多 >