Python 单击另一个元素中的按钮

Python 单击另一个元素中的按钮,python,selenium,selenium-webdriver,xpath,webdriverwait,Python,Selenium,Selenium Webdriver,Xpath,Webdriverwait,HTML快照: 您好,我想在本页上按下标有“登录”的按钮,按钮的html如下所示: <button class="">Log In</button> 登录 问题是,同一页面上有多个登录按钮与此代码,因此我想使用按钮所在容器的id指定此按钮: <li id = 'bs-bk-PP" class = "_2t6uLu" 要单击文本为登录的元素,可以使用以下任一选项: 使用xpath: driver.find_

HTML快照:

您好,我想在本页上按下标有“登录”的按钮,按钮的html如下所示:

<button class="">Log In</button>
登录
问题是,同一页面上有多个登录按钮与此代码,因此我想使用按钮所在容器的id指定此按钮:

<li id  = 'bs-bk-PP" class = "_2t6uLu"

要单击文本为登录的元素,可以使用以下任一选项:

  • 使用
    xpath

    driver.find_element(By.XPATH, "//li[@id='bs-bk-PP']//button[@class and text()='Log In']").click()
    

理想情况下,要单击需要为导入的元素,可以使用以下任一选项:

  • 使用
    XPATH

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//li[@id='bs-bk-PP']//button[@class and text()='Log In']"))).click()
    
  • 注意:您必须添加以下导入:

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

注意:我添加了一个屏幕截图,显示了检查Element时代码的显示方式。谢谢,但这会在页面上选择错误的登录按钮。如何根据我的初始问题包含正确容器的id?@Eglantine46能否使用包含该容器的元素的基于文本的完整HTML更新该问题;你能看到问题中html代码的截图吗?我无法选择所有html代码,因为它包含在不同的div中。是否可以先使用ID=bs bk PP选择元素,然后从该元素中使用“//button[@class and text()='log in'”单击登录按钮?”正如您上面提到的?@Eglantine46查看更新的答案,并立即让我知道状态工作,非常感谢!