当前位置: 首页 > 知识库问答 >
问题:

Selenium能否支持从动态生成的网页获取“XPath/Dom”和更多信息?

蒯慈
2023-03-14

我搜索了几个问题,但没有找到我的问题:

我想测试/验证2个系统的配置页面。但我面临三个挑战:

1、两个系统的页面看起来完全相同,但实际上相同项目(文本、下拉列表、单选按钮等)的dom/xPath信息完全不同。例如,页面上2个系统的“设备名称”字段有2个不同的xPath,例如sys1的xPath为“//input/abc”,sys2的xPath为“//input/xyz”。

2.有时页面是动态生成的,因此一个系统的同一项目的dom/xPath在不同时间可能不同。

3、基于1

我的问题是:

1、selenium能否返回页面上有多少个“文本字段”“下拉列表”“单选按钮”对象?

2.硒可以返回问题1中每个对象的xPath/dom吗?

我希望selenium可以返回所有对象和每个对象的xPath/dom信息,以便我可以为不同的系统进行映射和调用(我可以通过比较“相同”对象的索引/位置来确定当前使用的xPath)。

感谢所有评论/帮助。

共有2个答案

公冶谦
2023-03-14

您可以使用Linq实现类似的功能。例如,可以通过以下方式获取所有输入元素

IWebDriver driver = new FirefoxDriver();
var inputElements = driver.FindElements(By.TagName("input")); // get all input elements
inputElements.Count(); // get how many input elements there are

或:

IWebDriver driver = new FirefoxDriver();
var inputElements = driver.FindElements(By.XPath("//input")); // get all input elements
inputElements.Count(); // get how many input elements there are
祖新觉
2023-03-14

我不知道c,但Java有一个驱动程序。findElements(按.xpath/css(xpath/css值)))。这将返回页面中的元素数。如果你必须找到一个文本框,你可以使用

driver.findElements(By.xpath(//input[@type='textbox']).size();

这将返回页面中文本框的数量。

对于问题2,请检查此项。SO中也提出了类似的问题。

如何使用Javascript计算元素的XPath位置?

 类似资料:
  • 问题内容: Selenium RC中是否有办法从xpath获取ID? 如果我有xpath 我想获取与xpath相关的所有节点的ID 问题答案: 您可以通过运行javascript使用以下命令获得该代码: 当然,这取决于源语言,但这将是这样的(在perl中,未经测试): 我一直认为应该有一个更直接的方法来执行此操作,但是我还没有找到它! *根据注释进行 *编辑 ,for循环计数应从1开始并包含,而且

  • 本文向大家介绍Puppeteer 爬取动态生成的网页实战,包括了Puppeteer 爬取动态生成的网页实战的使用技巧和注意事项,需要的朋友参考一下 Puppeteer 相关介绍与安装不过多介绍,可通过以下链接进行学习 一、Puppeteer 开源地址 英文文档 中文社区 二、爬取动态网页 1. 需求 首先,了解下我们的需求: 爬取zoomcharts 文档中 Net Chart 目录下所有访问连接

  • 问题内容: 在网站上,有在标顶部的几个环节,,,和。如果按下以数字标记的链接,它将动态地将一些数据加载到content中。如果被按下,它会用标签页,,,和第4页中的数据显示。 我想从按下的所有链接的内容中抓取数据(我不知道有多少,一次只显示3个,然后) 请举一个例子。例如,考虑网站www.cnet.com。 请指导我下载使用selenium的一系列页面,并自行解析它们以处理漂亮的汤。 问题答案:

  • 问题内容: 现在,我正在研究网络爬虫。这个应该解析一些特定的站点,并输出一个xml文件。至此,这没有问题。搜寻器有效,您可以通过cfg文件快速地对其进行自定义。我使用Jsoup解析HTML内容。 我刚刚添加了几个站点,并注意到通过JavaScript创建的HTML内容存在很大的问题。没有办法使Jsoup支持Javascript吗?或者至少获得我在浏览器中可以看到的完整HTML内容。 我已经尝试过H

  • 问题内容: 我感兴趣的是建议/伪代码/解释,而不是实际的实现。 我想通过xml文档,及其所有节点 检查节点是否存在属性 如果节点不具有属性, 则为Case;如果节点确实具有属性,则为Case,迭代槽属性列表,并为每个属性(包括该节点)创建xpath。 忠告?希望你会提供一些有用的信息 编辑: 这样做的原因是..我正在用jmeter编写自动化测试,因此对于每个请求,我都需要验证该请求是否确实完成了工

  • 主要内容:静态网页,动态网页本节我们了解一下静态网页和动态网页的相关概念。如果您熟悉前端语言的话,那么您可以快速地了解本节知识。 当我们在编写一个爬虫程序前,首先要明确待爬取的页面是静态的,还是动态的,只有确定了页面类型,才方便后续对网页进行分析和程序编写。对于不同的网页类型,编写爬虫程序时所使用的方法也不尽相同。 静态网页 静态网页是标准的 HTML 文件,通过 GET 请求方法可以直接获取,文件的扩展名是 、 等,网面中