不能在Selenium Python中使用JavaScriptExecutor单击选项卡式元素

不能在Selenium Python中使用JavaScriptExecutor单击选项卡式元素,python,selenium,Python,Selenium,我试图在Binance上单击一个名为“Stop Limit”的选项卡式元素,但由于元素id发生了变化,每次您将其作为选项卡式元素单击时,单击该元素的类名都不会起任何作用 或者它在限制和市场之间切换,而不是切换到停止限制选项卡 “停止限制”元素旁边有一个带i的圆 代码Im使用 javaScript = "document.getElementsByClassName('css-zh6lrt')[0].click();" driver.execute_script(javaS

我试图在Binance上单击一个名为“Stop Limit”的选项卡式元素,但由于元素id发生了变化,每次您将其作为选项卡式元素单击时,单击该元素的类名都不会起任何作用

或者它在限制和市场之间切换,而不是切换到停止限制选项卡

“停止限制”元素旁边有一个带i的圆

代码Im使用

javaScript = "document.getElementsByClassName('css-zh6lrt')[0].click();"
driver.execute_script(javaScript)
谢谢

附录

我的完整脚本,它给出了一个语法错误

  from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
import io
import threading
import configparser
from pathlib import Path
import os
import time

PATH = "D:\Project\AHK Chrome\chromedriver_win32v91\chromedriver.exe"

# For Selenium

data_folder = Path("D:/12/Temp/")
file_to_open = data_folder / "1.txt"

# For PathLib & Ini

Configdata_folder = Path("D:/12/Temp/")
Configfile_to_open = Configdata_folder / "CTESTX2.ini"

options = Options()
options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")

chrome_driver = PATH
driver = webdriver.Chrome(chrome_driver, options=options)
print(driver.title)

element = WebDriverWait(driver,5).until(EC.presence_of_element_located((By.CSS_SELECTOR,'span[data-testid="stopLimit"]')))
driver.execute_script("arguments[0].click();", element)

即使使用常规webdriver
,也可以单击该元素。单击()
方法:

driver.find_element_by_css_selector('span[data-testid="stopLimit"]').click()
或者试试这个:

element = WebDriverWait(driver,5).until(EC.presence_of_element_located((By.CSS_SELECTOR,'span[data-testid="stopLimit"]')))
driver.execute_script("arguments[0].click();", element)
这些是EC使用所需的进口:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
这也应该起作用:

javaScript = "document.querySelector('span[data-testid="stopLimit"]').click();"
driver.execute_script(javaScript)

谢谢,javascript示例给出了一个语法错误。。。javaScript=“document.getElementsByCSSSelector('span[data testid=“stopLimit”]”)。单击();“我明白了。这就是我把它拿走的原因。但是为什么不使用常规的webdriver点击呢?我需要javascript来提高速度,selenium点击要慢得多…我明白了。。。我找不到类似于
document.getElementsBy
接受css选择器的方法。。我的JS不好,我主要使用Java。。这可能会起作用,但我一直不知道)在参数列表后
javaScript=“document.getElementsByXpath('//div[@data testid='tweetTextarea\u 0']]/div/div/div/span')。单击()”