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

html页面中所有特定表单的xpath模式

钦永贞
2023-03-14

我必须在html页面中找到所有类似“登录表单”的表单。这样的要求是它包含文本输入字段、密码字段和按钮(提交或只是一个按钮)。

不应该提到任何元素名称,因为它应该通过不同的语言突变来工作。

我需要在页面中找到符合这些要求的所有表单。我想可以使用xpath完成,但我无法找出任何工作模式。

顺便说一下,我正在将webdriver与python结合使用。

共有1个答案

井镜
2023-03-14

因此,您需要一个XPath表达式来匹配每个表单元素(//表单),该元素在其子代中有一个输入类型=密码的元素([.//输入[@type='password']),一个标准的输入字段([.//输入[非(@type)或@type=''或@type=''或@type='text'])和一个提交按钮([.//输入[@type='submit']或//按钮[非(@type)或@type=''或@type='submit']))。

所有在一起就成了

//form[.//input[@type='password']][.//input[not(@type) or @type='' or @type='text']][.//input[@type='submit'] or .//button[not(@type) or @type='' or @type='submit']]

它可能不匹配每个表单,因为对于提交按钮和文本输入字段,很难制定一个始终有效的规则。处理此类元素时的问题是,它们有许多类型值,如果提供的类型无效,则默认为文本或提交状态。例如,输入元素my的“类型”属性设置为“非有效类型”,并且它仍然是标准文本输入。

此外,type属性不区分大小写,考虑到这一点的正确XPath表达式更复杂,它还需要XPath 2.0:

//form[.//input[lower-case(@type)='password']][.//input[not(@type) or @type='' or lower-case(@type)='text']][.//input[lower-case(@type)='submit'] or .//button[not(@type) or @type='' or lower-case(@type)='submit']]

 类似资料:
  • 我正在尝试将所有超文本标记语言节点转换为XPATH这是一个示例输入。基于超文本标记语言,我正在寻找所有子节点的所有XPATH 我想要的输出 我目前拥有的 代码 如果你们能给我指出正确的方向,任何帮助都会很好 我确实研究了Lxml bs4和硒,但不幸的是没有运气

  • 我想通过单击“提交”按钮更改页面。问题是我不想用PHP执行此操作。我将使用一个链接示例,我们将其称为newpage。我创建了一个表单方法,其开头如下: 我在这个方法里面有什么是可以的。我已经创建了javascript,所以它会将我现在所在的旧页面更改为新页面 但它不起作用。我试过很多东西,但仍然不起作用。你知道怎么做吗?

  • 我想通过单击“提交”按钮更改页面。问题是我不想用PHP执行此操作。我将使用一个链接示例,我们将其称为newpage。我创建了一个表单方法,其开头如下: 我在这个方法里面有什么是可以的。我已经创建了javascript,所以它会将我现在所在的旧页面更改为新页面 但它不起作用。我尝试了很多东西,但仍然不起作用。知道怎么做吗?

  • 问题内容: 是否可以在每个表的每个字段中搜索Oracle中的特定值? 有几百个表,有些表中有成千上万的行,因此我知道这可能需要很长时间才能查询。但是我唯一知道的是我要查询的字段的值是1/22/2008P09RR8。< 我已经尝试过使用以下语句根据我认为应命名的内容找到合适的列,但未返回任何结果。 这个数据库上绝对没有文档,我也不知道该字段是从哪里提取的。 有什么想法吗? 问题答案: 引用: 我已尝

  • 问题内容: 我是GWT的新手,打算使用GWT开发用于用户管理应用程序的UI。我打算使用通过Spring / Hibernate创建的现有模块。我想出了如何将GWT与Spring集成在一起,但不确定如何设计布局。 我想要两页: 用户注册页面(想要在HTML中嵌入GWT小部件) 管理页面(上面嵌入了GWT小部件的单独HTML) 我打算使用Spring Security,应该使用简单的JSP登录页面还是