【问题标题】:Is it possible to make this Xpath shorter?是否有可能使这个 Xpath 更短?
【发布时间】:2015-05-10 15:12:49
【问题描述】:

我们为 Chrome、Firefox 和 Safari 开发扩展程序,并使用 Selenium 测试我们的 Chrome 和 Firefox 扩展程序。我们有一个特定的元素,可以是 span 或 div(取决于我们扩展的版本),我们需要使用 Selenium 验证它。代码如下所示:

WebDriverWait(driver=self.driver, timeout=30).until(expected_conditions.visibility_of_element_located((By.XPATH, "//span[@id='top-icon'] | //div[@id='top-icon']")))
self.assertEqual(first=1, second=len(self.driver.find_elements_by_xpath(xpath="//span[@id='top-icon'] | //div[@id='top-icon']")))

我想知道是否有办法将 xpath 写得更短(不写两次 id),但不要尝试查找任何元素(仅 span 或 div)。

【问题讨论】:

    标签: python selenium xpath selenium-webdriver


    【解决方案1】:

    你可以使用

    //*[self::span|self::div][@id='top-icon']
    

    【讨论】:

      【解决方案2】:

      要制作与元素无关的表达式,请使用* 代替divspan

      //*[@id='top-icon']
      

      或者,只需使用By.ID 定位器:

      (By.ID, "top-icon")
      

      【讨论】:

      • 我不想批准任何元素,只批准 span 或 div。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-10
      • 2021-05-02
      • 1970-01-01
      • 2022-10-16
      相关资源
      最近更新 更多