硒单击下一步按钮将产生selenium.common.exceptions.ElementClickInterceptedException

时间:2020-06-17 20:17:08

标签: python selenium

我正在尝试使用硒和python单击有关此特定website的更多信息(摘要)。这就是我对其进行测试的方式,并且出现以下错误

driver.find_element_by_css_selector('[class="button button--primary style_loadMore__2rYaL style_button__xicB7"]').click()

selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted:

这是可行的:

tresults = driver.find_elements_by_xpath('//button[text()="Se flere"]') #flere"]')
for idx, tr in enumerate(tresults):
    #print (tr.text, tr.get_attribute('class'))
    if tr.get_attribute('class') == 'button button--primary style_loadMore__2rYaL style_button__xicB7':
        driver.execute_script("arguments[0].click();", tr)
        #tr.click()

我想念什么?

2 个答案:

答案 0 :(得分:0)

要点击 Se flere ,您必须为element_to_be_clickable()引出WebDriverWait,并且可以使用以下Locator Strategies之一:

  • 使用CSS_SELECTOR

    driver.get('https://coop.no/sortiment/obs-bygg/hageuterom/hytter-boder-og-drivhus')
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button[type='CategoryPage']"))).click()
    
  • 使用XPATH

    driver.get('https://coop.no/sortiment/obs-bygg/hageuterom/hytter-boder-og-drivhus')
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@type='CategoryPage']"))).click()
    
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
  • 浏览器快照:

coop


参考

您可以在以下位置找到一些详细的讨论:

答案 1 :(得分:0)

这是一个非常简单的运行代码段,该代码段使用XPATH查找按钮“文本”。

from selenium import webdriver

driver = webdriver.Firefox()
driver.get("https://coop.no/sortiment/obs-bygg/hageuterom/hytter-boder-og- 
drivhus")
element = driver.find_element_by_xpath('//button[text()="Se flere"]')
element.click()