单击硒中的按钮

Click on button in selenium

我想点击 list 但他们会给我 time out error 这是页面 link https://www.s-ge.com/de/members-map

这是代码:

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


PATH="C:\Program Files (x86)\chromedriver.exe"
url='https://www.s-ge.com/de/members-map'
driver =webdriver.Chrome(PATH)
driver.get(url)


WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button#m-view-tabs__button is-activ"))).click()

您能否尝试改用此 XPath 定位器?

//button[contains(@data-target-tab, 'list')]

定位器不正确,或者元素不可点击。 如果元素不可点击,请尝试使用js点击。

element = driver.find_element_by_xpath("//button[contains(@data-target-tab, 'list')]")
def js_click(self, element):
    driver.execute_script("arguments[0].click();", element)

尝试使用 xpath

driver.find_element_by_xpath("//button[@class='m-view-tabs__button is-active']").click()

  1. 点击 accept cookies 是 可选的 ,不是 必需的

  2. 您应该以全屏模式启动浏览器,以便 Selenium 可以在其 view port.

    中显示列表按钮
  3. 如果您观察到即使您尝试在 list button 上手动单击 ,您也会 scrolling 一点然后表演 click。你也应该 automatescrolling 部分。

  4. 惊讶地看到 none 的答案正在使用 CSS_SELECTOR

代码:

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

driver = webdriver.Chrome(driver_path)

driver.maximize_window()

wait = WebDriverWait(driver, 20)
driver.get("https://www.s-ge.com/de/members-map")


list_button = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button[data-target-tab='list']")))
driver.execute_script("arguments[0].click();", list_button)

进口:

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