【问题标题】:How to get text field history in selenium?如何在硒中获取文本字段历史记录?
【发布时间】:2015-08-19 14:42:45
【问题描述】:

是否可以为数组中的字段或 selenium 中的类似内容获取字段的历史记录(如果存在)?比如user id字段,我可以看到目前为止使用过的所有ID。

我想使用它的目的是快速创建以前没有使用过的新 ID。例如testID45 已经被占用,所以我将使用testID46 创建一个新的。这是一种懒惰的方式来填写表格而不跟踪所使用的 ID。

【问题讨论】:

  • 如果它存储在 DOM 中的某个地方,那么是的,否则不是,那是你的责任。 Selenium 只看 DOM,没有别的。这是您必须自己实现的逻辑。
  • 看来我运气不好。由于隐私问题,浏览器可能会自己处理这些问题。那好吧。如果有人有出色的解决方案,我会保持打开状态。
  • 它是您拥有/控制的网站吗?您仍然可以实施解决方案。您想检查该 ID 之前是否被使用过,所以要么随机生成一个,要么使用网站中的 API 来查看它是否在使用中。

标签: selenium selenium-webdriver getattribute


【解决方案1】:

我不完全理解您为什么要使用 Selenium 创建 ID。如果您想发布更多关于您要解决的问题的信息,我可以尝试提供更好的答案。

如果你想从现有元素中提取 ID,你可以这样做。这将查找所有指定了 ID 的 INPUT 元素并写出 ID。您可以解析 ID,然后确定接下来要使用的 ID。我不建议这样做,因为只生成一个唯一的新 ID 会更快,但也许您出于某种原因需要它。

List<WebElement> ids = driver.findElements(By.cssSelector("input[id]"));
for (WebElement id : ids)
{
    System.out.println(id.getAttribute("id"));
}

我建议生成一个您自己的格式的新 ID,该 ID 在页面上是唯一的。这应该足以满足您的目的。

Random rnd = new Random();
String id = Long.toHexString(rnd.nextLong());
System.out.println("testID-" + id); // e.g. testID-cb8e7bac29ec7c7a

this post 中还有许多其他生成字符串的方法,您也可以参考。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-14
    • 1970-01-01
    • 1970-01-01
    • 2018-11-08
    • 2018-12-01
    • 2019-08-23
    • 2018-05-10
    相关资源
    最近更新 更多