【问题标题】:Error in clicking on element inside <li> that lies inside <ul>单击位于 <ul> 内的 <li> 内的元素时出错
【发布时间】:2022-02-01 02:02:29
【问题描述】:

HTML代码如下:

    <li class="dropdown span pull-right username">
    <a href="#" id="username">…….</a>
    <!-- Unauthenticated : This content will only be shown to unauthenticated users-->
    <ul class="dropdown-menu signed-in-dropdown">
    <!-- Authenticated : This content will only be shown to authenticated users-->
    <li><a href="#" rel="WebClientAccount">Manage Account</a></li>
    <li><a href="https://content.endicia.com/ContentService/legalterms/" target="_blank">Legal Terms</a></li>                           
    <li class="lastItem"><a href="#" rel="StoreSignOut" id="signOutLink">Sign Out</a>
    </li>
    </ul>
    </li>
    </ul>

我必须点击用户名(class="dropdown span pull-right username")。然后打开下拉菜单,其中有 3 个选项。我想点击退出 (id="signOutLink)

我在下面尝试过:

    t=driver.find_element(By.ID ,"username")
    driver.execute_script("arguments[0].click();",t) 
    time.sleep(2)
    element = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "ul#dropdown-menu signed-in-dropdown a[data-value='Sign Out']")))
    element.click()

但是得到这个错误:

selenium.common.exceptions.TimeoutException: Message: 

【问题讨论】:

    标签: python html selenium selenium-webdriver css-selectors


    【解决方案1】:
    element = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "ul.dropdown-menu.signed-in-dropdown")))
    element.click()
    element2 = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "li.lastItem a#signOutLink")))
    element2.click()
    

    只需点击即可打开下拉菜单并继续点击该元素。

    ul.dropdown-menu.signed-in-dropdown 您的 css 选择器已关闭。 # 用于 ID 。是上课的。单击下拉列表后,继续单击 li.lastItem a#signOutLink 。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多