找不到 work/not 使用 selenium webdriver 的按钮点击

Buttons click with selenium webdriver not work/not found

实际上,我有一个带有 python 3.10、selenium、undetected-chromedriver 的脚本,我想单击此网页上的两个按钮:

https://keepa.com/#!

按钮是法国国旗,这里是“.fr”:

和html这两个按钮的代码在这里:

-首先突出显示的是标志 fr

-第二个是国家“.fr”

我已经测试了脚本的某些部分,但实际上没有用:

对于语言标志 fr:

driver.find_element(By.XPATH, "(//span[@id='lang_fr'])").click()
driver.find_element(By.ID,"lang_fr").click()

国家.fr:

driver.find_element(By.XPATH, "(//span[@setting='4'])").click()
driver.find_element(By.XPATH, "(.//span[contains(text(), '.fr')])").click()

我的结果有一些错误,“找不到元素”,或者这个:

selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable

任何人都可以帮助我或知道问题出在哪里?

谢谢帮助,再见!

你必须先点击默认标志,然后会有2个按钮,你可以点击如下:

代码:

driver_path = r'C:\Users\****\***\Desktop\Automation\chromedriver.exe'

driver = webdriver.Chrome(driver_path)

driver.maximize_window()


driver.get("https://keepa.com/#!")
wait = WebDriverWait(driver, 30)

wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div#currentLanguage .languageMenuText"))).click()

flag = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "img#lang_fr")))
flag.click()

lang = wait.until(EC.visibility_of_element_located((By.XPATH, "//span[text()='.fr']")))
lang.click()

进口:

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

您可以尝试下面的代码,它会对您有所帮助(虽然这是使用 java)。

Actions actions = new Actions(driver);
WebElement ctr;
ctr= driver.findElement(By.xpath("//*[contains(text(),'YOUR DESIRED TEXT')]"));
Thread.sleep(1000);
actions.click(spatial).perform();