【问题标题】:Why DOM-element is not displayed to selenium webdriver?为什么 DOM 元素不显示给 selenium webdriver?
【发布时间】:2021-12-09 09:24:54
【问题描述】:

我需要在https://garantex.io/ 上按下绿色按钮以接受 cookie 我的代码:

driver = webdriver.Chrome(ChromeDriverManager().install())
driver.implicitly_wait(10)
driver.get("https://garantex.io/")
try:
    cookie_access = driver.find_element_by_class_name('btn.btn-success')
    print("Is displayed = " + str(cookie_access.is_displayed()))
except Exception as e:
    driver.close()
    print(e)

我有Is displayed = FALSE。如何与此按钮交互?

【问题讨论】:

  • 我试图让 webdriver 等待 excepted_conditions 的可见性,但即使在等待 30 秒后我也有 Timeout Exception
  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。
  • 我需要使用 selenium webdriver 与按钮交互,但 webdriver 不显示此按钮。我必须做些什么来解决这个问题?

标签: python html selenium dom button


【解决方案1】:

你几乎是正确的。但那是 CSS 选择器而不是类名。

driver = webdriver.Chrome(ChromeDriverManager().install())
# driver.implicitly_wait(10)
driver.maximize_window()
wait = WebDriverWait(driver, 30)
driver.get("https://garantex.io/")
try:
    wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".btn.btn-success"))).click()
    print('Clicked on cookies button successfully.')
    #print("Is displayed = " + str(cookie_access.is_displayed()))
except Exception as e:
    driver.close()
    print(e)

您也将需要这些导入

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

【讨论】:

    【解决方案2】:

    按钮被我正常点击了,也许你需要像这样添加一些等待:

    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    ...
    driver.get("https://garantex.io/")
    cookie_access = WebDriverWait(driver, 30).until(EC.presence_of_element_located((By.CLASS_NAME, "btn.btn-success")))
    cookie_access.click()
    

    在加载页面之前,你也根本不需要driver.implicitly_wait(10),也许在它之后。

    【讨论】:

      猜你喜欢
      • 2021-12-21
      • 2017-03-07
      • 2014-11-03
      • 2014-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-18
      • 2023-02-20
      相关资源
      最近更新 更多