Selenium单击GDPR单击按钮

2024-06-30 13:48:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过编程方式单击按钮,在ubuntu服务器上运行脚本,以访问网站内容。我正试图通过recipies到达该站点

这是我的代码:


driver = webdriver.Firefox(executable_path="/home/ubuntu/.linuxbrew/Cellar/geckodriver/0.26.0/bin/geckodriver",options=options)
data = []


# In[34]:

# click GDPR full-width banner 
start_time = datetime.now()
driver.get("http://some_web_site.here/")
time.sleep(10)

# gdpr_button = driver.find_element_by_link_text("Continue")
#gdpr_button = driver.find_element_by_xpath('//button[text()="Continue"]')

driver.find_element_by_xpath("//input[@style='order:2' and @onclick='sendAndRedirect()']").click()

# //input[@onclick='sendAndRedirect()']
# <button style="order:2" onclick="sendAndRedirect();">Continue</button>

然而,我无法到达元素并获得

selenium.common.exceptions.TimeoutException: Message: connection refused

如何访问GDPR表单中的“继续”按钮?谢谢你的帮助


Tags: bytimeubuntudriverbuttonelementfind按钮
1条回答
网友
1楼 · 发布于 2024-06-30 13:48:35

所需的元素是动态元素,因此要在元素上定位/click(),您需要为element_to_be_clickable()诱导WebDriverWait,并且可以使用以下任一Locator Strategies

  • 使用CSS_SELECTOR

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button[onclick^='sendAndRedirect']"))).click()
    
  • 使用XPATHinnerText事件:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[text()='Continue']"))).click()
    
  • 使用XPATHonclick事件:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[starts-with(@onclick, 'sendAndRedirect')]"))).click()
    
  • 注意:您必须添加以下导入:

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

相关问题 更多 >