如何单击带有“确定!”文本的按钮使用Selenium和Python

时间:2018-08-17 14:30:17

标签: selenium-webdriver xpath

打开时遇到问题

https://pribot.org/polisis/?company_url=http%3A%2F%2Fhotmail.com&status=policyAbsentRedirect

在Firefox上使用硒。我正在使用python。

我要运行此代码以单击“确定!”按钮,但确实有效,只是没有错误。

帮助!
我的代码是

driver.find_element_by_xpath("//button[@class='btn theme--dark primary'][@type='button']").click()

请注意,当我执行此代码时,包含“ SURE”按钮的弹出层消失了,但未应用SURE按钮动作。好像我在单击ESC。

3 个答案:

答案 0 :(得分:0)

import time
from selenium import webdriver

driver = webdriver.Chrome(executable_path="C:/Users/myname/Desktop/Projects/chromedriver.exe")
driver.get("https://pribot.org/polisis/?company_url=http%3A%2F%2Fhotmail.com&status=policyAbsentRedirect")
time.sleep(5)
driver.find_element_by_xpath('//*[@id="app"]/div[2]/div/div/div[2]/div/div/button[2]').click() 

使用上面的代码片段对我来说效果很好。 您需要明确等待3-5秒。 希望能帮助到你!! 如果没有,请尽快通知我们。

答案 1 :(得分:0)

根据问题中的url,您需要诱使 WebDriverWait 使所需的元素可点击,并且可以使用以下解决方案:

  • 代码块:

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    driver=webdriver.Firefox(executable_path=r'C:\Utility\BrowserDrivers\geckodriver.exe')
    driver.get("https://pribot.org/polisis/?company_url=http%3A%2F%2Fhotmail.com&status=policyAbsentRedirect")
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='dialog dialog--active dialog--persistent']//button[@class='btn theme--dark primary']/div[@class='btn__content']"))).click()
    
  • 浏览器快照:

pribot

答案 2 :(得分:0)

您询问如何单击包含文本“确定!”的元素。唯一的方法是使用指定所需文本的XPath。您可以使用下面的XPath。

//div[.='Sure!']

由于该弹出窗口最初不会在页面加载时显示,因此您需要添加一个等待时间,例如

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

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[.='Sure!']"))).click()