动态ID-如何在Python中使用selenium单击动态按钮



按钮是一个复制按钮;复制上方框中的文件共享链接。这是我的尝试:

getLink = driver.find_element_by_xpath("""//*[starts-with(@id, "ic0") and contains(@id, "544")]""").click()

还是没用。类是"#c0-5443772",但它是动态的。

感谢大家的帮助!

页面的HTML代码:https://codeshare.io/2WxgOy页面截图:

png

要点击可用于下载链接的复制按钮,您可以使用以下xpath:

//h2[text()='Download Link']//following-sibling::button

同样,你可以使用下面的Xpath链接论坛

//h2[text()='Link for forums']//following-sibling::button

对于最后一个和第四个按钮,您可以使用以下xpath:

//h2[text()='Embed code']//following-sibling::button

对于粘贴,您可以使用pyperclip

确保使用pippip install pyperclip进行安装

paste_string= pc.paste();

print(paste_string)

更新1:

from time import sleep
import tkinter as tk
import clipboard as clipboard
import pyautogui as pyautogui
import pyperclip as pyperclip
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
import pandas as pd
driver = webdriver.Chrome("C:\Users\Desktop\Selenium+Python\chromedriver.exe")
driver.maximize_window()
wait = WebDriverWait(driver, 100)
driver.get("https://www.streamsb.com/login.html")
#   Login
user = driver.find_element_by_css_selector("#login > div > form > div:nth-child(3) > div > input[type=text]").send_keys("Enter here")
password = driver.find_element_by_css_selector("#login > div > form > div:nth-child(4) > div > input[type=password]").send_keys("Enter here")
enter = driver.find_element_by_css_selector("#login > div > form > div:nth-child(7) > div > input[type=submit]").click()
#   Navigation and upload
driver.find_element_by_css_selector("#mAcct > div.mnu > div > ul > li:nth-child(1) > a").click()
driver.find_element_by_css_selector("#mainmenu > ul > li:nth-child(2) > a").click()
driver.find_element_by_css_selector("#filepc").send_keys("C:\Selenium+Python\file_example_MP4_480_1_5MG.mp4")
uploadButton = driver.find_element_by_class_name("upload-form-button").click()
copy_button = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, 'button.btndiv')))
print("before clicking copy button.")
copy_button.click()
text = clipboard.paste() # text will have the content of clipboard
print(text)

有四个用于4个选项卡的Copy-Html代码,每个选项卡都有不同的id,但属于同一类。所以您可以像这样使用XPath。

"//h2[contains(.,'"+tabName+"')]//following-sibling::button"

此处,tab Name是将作为tab Names值传递的变量例如

//h2[contains(.,'Download Link')]//following-sibling::button

最新更新