Python 尝试单击按钮,但xpath不断出错

Python 尝试单击按钮,但xpath不断出错,python,selenium,xpath,css-selectors,webdriverwait,Python,Selenium,Xpath,Css Selectors,Webdriverwait,我正在尝试将信用费用自动拉入excel表格;我已经设法让登录工作。一旦我进入网站,就会有一个标题为“搜索”的按钮。我似乎想不出如何点击那个按钮 from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.c

我正在尝试将信用费用自动拉入excel表格;我已经设法让登录工作。一旦我进入网站,就会有一个标题为“搜索”的按钮。我似乎想不出如何点击那个按钮

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By

import time

chromedriver = "C:/Python_Ex/chromedriver_win32/chromedriver.exe"
driver = webdriver.Chrome(chromedriver)
delay = 30
driver.get("https://global.americanexpress.com/activity/date-range?from=2020-05-01&to=2020-05-30")

driver.find_element_by_xpath('//*[@id="eliloUserID"]').send_keys("removed")
driver.find_element_by_xpath('//*[@id="eliloPassword"]').send_keys("removed")
driver.find_element_by_xpath('//*[@id="loginSubmit"]').click()

time.sleep(10)

#print(driver.find_elements_by_xpath('//*[@id="root"]/div[1]/div/div[2]/div/div/div[5]/div/div[3]/div/div/div/div[2]/div[2]/div/div/div/div/div[1]/section/div[4]/div[2]/button'))
search_button = driver.find_elements_by_xpath('//*[@id="root"]/div[1]/div/div[2]/div/div/div[5]/div/div[3]/div/div/div/div[2]/div[2]/div/div/div/div/div[1]/section/div[4]/div[2]/button')
search_button.click()
html标记如下所示

<button class="btn btn-fluid" tabindex="0" type="button"> <span>Search</span></button>
//*[@id="root"]/div[1]/div/div[2]/div/div/div[5]/div/div[3]/div/div/div/div[2]/div[2]/div/div/div/div/div[1]/section/div[4]/div[2]/button

感谢您的帮助。

提交登录后,请尝试添加以下代码:

...
...
driver.find_element_by_xpath('//*[@id="loginSubmit"]').click()

wait = WebDriverWait(driver, 20)
wait.until(EC.element_to_be_clickable((By.XPATH, "//button[@class='btn btn-fluid']//span[text()='Search']"))).click()
以下内容:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
要使用
上单击()
,文本为搜索,您需要将
元素归纳为可单击()
,您可以使用以下任一选项:

  • 使用
    CSS\u选择器

    WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.btn.btn-fluid[type='button']>span"))).click()
    
  • 使用
    XPATH

    WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//button[@class='btn btn-fluid']/span[text()='Search']"))).click()
    
  • 注意:您必须添加以下导入:

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

感谢所有的帮助。/span[text()=“Search”对Xpath有什么作用?我以前在类中尝试过,但没有成功。我想span[…]是缺少的组件;好奇它是如何工作的?@newbie_khan
//span[text()=“Search']
在父
元素中的
元素中查找文本搜索。很高兴能为您提供帮助。QQ:我如何访问下面html代码中的5月27日文本?5月27日另外,单击所有搜索按钮后,我是否能够使用驱动程序访问网页上的新内容,或者我是否必须执行一些操作来加载t他在《司机》中有新的内容吗?