【问题标题】:driver.findelements(by.xpath()) returning zerodriver.findelements(by.xpath()) 返回零
【发布时间】:2016-09-27 02:15:22
【问题描述】:

我正在尝试找出答案。下图中的订单数量使用
//*[@id='past-orders-tab']/div[contains(@class,'physical')]

但它使用 .size() 返回零(存储在 List[WebElement] 中) .当我使用findelement() 选择一个订单时,它工作正常。这是页面源代码

如何纠正?

【问题讨论】:

  • By.xpath("past_orderbox") --- 这个 xpath 没有意义。 past_orderbox 是包含您之前编写的 xpath 的变量吗?如果是这样删除双引号。
  • 我应该从 .properties 文件中读取。谢谢@Grasshopper

标签: selenium selenium-webdriver


【解决方案1】:

您应该尝试使用WebDriverWait 等待网页上至少存在一个元素,如下所示:-

WebDriverWait wait = new WebDriverWait(driver, 10);
List<WebElement> ord = wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.cssSelector("#past-orders-tab > div.physical")));

【讨论】:

  • 感谢您的回答,但有一个问题,可以像您一样将路径转换为cssSelector。这是一个 Flipkart 网站
  • 对不起,我不明白你在问什么??是否需要任何方法将 xpath 显式转换为 cssSelector??
  • @bot13 如果我是对的,没有任何方法可以将 xpath 转换为 cssSelector,您需要 learn how to make a cssSelector from some tutorials 并自己尝试。谢谢
  • 是的,因为我以前没见过这种 cssxpath
  • 跟着本教程学习cssSelector w3schools.com/cssref/css_selectors.asp
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-08
  • 1970-01-01
  • 2021-09-23
  • 2016-11-24
  • 2021-10-24
  • 2017-11-19
相关资源
最近更新 更多