Python 如何从列表中选择Selenium中的项目?

Python 如何从列表中选择Selenium中的项目?,python,selenium,xpath,css-selectors,webdriverwait,Python,Selenium,Xpath,Css Selectors,Webdriverwait,有一个列表项(li),您需要单击它。但这种情况是否会持续下去,目前尚不清楚 我和for id都试过了,而对于xpath和link中的文本,我都没有试过 <li id="l_pr" class=""><a href="https://vk.com/32444224224" onclick="return nav.go(this, event, {noback: true, params: {_ref: 'left_nav'}});" class="left_row">

有一个列表项(li),您需要单击它。但这种情况是否会持续下去,目前尚不清楚

我和for id都试过了,而对于xpath和link中的文本,我都没有试过

<li id="l_pr" class=""><a href="https://vk.com/32444224224" onclick="return nav.go(this, event, {noback: true, params: {_ref: 'left_nav'}});" class="left_row">
    <span class="left_fixer">
      <span class="left_count_wrap fl_r left_void"><span class="inl_bl left_count_sign">0</span></span>
      <span class="left_icon fl_l"></span>
      <span class="left_label inl_bl">My page</span>
    </span>
  </a>
  <div class="left_settings" onclick="menuSettings(0)">
  <div class="left_settings_inner"></div>
</div>
</li>

  • 我希望单击我的页面链接

    请检查是否存在iframe,在这种情况下,您必须在单击元素之前切换到框架。如果没有iframe,那么单击该元素看起来很简单。 试试这个xpath

    driver.find_element_by_xpath("//span[contains(.,'My page')]/parent::a").click()
    

    请检查是否存在iframe,在这种情况下,您必须在单击元素之前切换到该帧。如果没有iframe,那么单击该元素看起来很简单。 试试这个xpath

    driver.find_element_by_xpath("//span[contains(.,'My page')]/parent::a").click()
    
    若要
    单击()
    文本为我的页面的链接,因为该元素是一个已启用的元素,因此您必须引导WebDriverWait使
    元素可单击()
    ,并且您可以使用以下任一解决方案:

    • 使用
      XPATH
      A:

      WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//span[text()='My page']"))).click()
      
    • 使用
      CSS\u选择器

      WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "li[id$='_pr']>a[href^='http'] span.left_label"))).click()
      
    • 使用
      XPATH
      B:

      WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//li[contains(@id,'_pr')]/a[starts-with(@href,'http')]//span[text()='My page']"))).click()
      
    • 注意:您必须添加以下导入:

      from selenium.webdriver.support.ui import WebDriverWait
      from selenium.webdriver.common.by import By
      from selenium.webdriver.support import expected_conditions as EC
      
    单击()
    文本链接为我的页面,因为该元素是一个启用的元素,因此您必须引导WebDriverWait使
    元素成为可单击的()
    ,并且您可以使用以下任一解决方案:

    • 使用
      XPATH
      A:

      WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//span[text()='My page']"))).click()
      
    • 使用
      CSS\u选择器

      WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "li[id$='_pr']>a[href^='http'] span.left_label"))).click()
      
    • 使用
      XPATH
      B:

      WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//li[contains(@id,'_pr')]/a[starts-with(@href,'http')]//span[text()='My page']"))).click()
      
    • 注意:您必须添加以下导入:

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

    请发布您尝试使用的代码。可能重复的请发布您尝试使用的代码。可能重复的