XPath regex的定义
XPath regex是帮助我们使用定位一个属性的部分,该属性保持一致,用于识别网页中的元素。有时,html代码中的属性值会发生变化,实例的属性每次都在变化,而我们正在处理的网页每次都会被刷新。我们使用的任何字母数字值都很有可能每次都会发生变化。
什么是XPath重构函数?
在某些情况下,XPath包括在我们加载页面时总是改变的部分,这将导致失败。另外,我们可以使用通配符来处理通配符运算符,在这些方法上不应用XPath。XPath的标准引入了正则表达式,这是新的,用于一般目的。XPath regex插件用于匹配包含一个或多个来自我们xml文档中的属性和元素的唯一值的样式。XPath regex在python和selenium中是非常有用和重要的。
如何使用XPath regex?
- 为了使用XPath regex,我们通过使用正则表达式的帮助部分地匹配其属性来识别元素。XPath包含多种方法来实现这一点。
- 为了在selenium python中使用XPath regex,我们需要在python中安装selenium,下面的例子显示了通过使用pip命令来安装selenium,如下所示。
- 在这一步,我们使用pip命令来安装selenium。下面的例子显示了通过使用pip命令来安装selenium,如下所示。
pip install selenium
- 使用pip命令安装完selenium后,我们使用python命令登录到python shell,如下所示。
python
- 在这一步登录到python shell后,我们使用import关键字在我们的程序中导入nttk.corpus模块。下面的例子显示了导入nttk.corpus模块的情况如下。
从selenium导入webdriver
- 假设我们没有使用pip在我们的系统中安装selenium,那么它将显示以下错误。
- 在XPath regex中,我们有多种方法来实现正则表达,下面是XPath regex中使用的方法。
- 包含方法
- 以方法开始
- 以方法结束
- 包含方法是指包含在一个给定文本中的字符串。下面是包含方法的语法,如下所示。
语法 -
driver.find_element_path (input [contains (@stud_name, sel)])
- 上述语法,我们正在搜索包含stud_name的输入标签和包含sel的属性文本。
- 下面是XPath regex中包含方法的例子。在下面的例子中,我们首先通过使用selenium包来导入webdriver。
代码 -
从selenium导入webdriver
XPath = webdriver.Chrome (executable_path = "C:\\chromedriver.exe")
XPath.maximize_window()
XPath.get ("www.example.com/index.htm")
XPath.refresh()
XPath.find_element_by_XPath("//input[contains(@id,'sc-i')]")。
send_keys ("Selenium")
XPath.close()
- Starts-with方法意味着字符串以给定的文本开始。下面是 starts with 方法的语法,如下所示。
语法 -
driver.find_element_path (input [starts-with (@stud_name, Tut)])
- 上述语法,我们正在搜索包含stud_name的输入标签和包含Tut文本的属性。
- 下面是XPath regex中starts-with方法的例子,如下所示。在下面的例子中,首先,我们通过使用selenium包来导入webdriver。
代码 -
从selenium导入webdriver
XPath = webdriver.Chrome (executable_path = "C:\\chromedriver.exe")
XPath.maximize_window()
XPath.get ("www.example.com/index.htm")
XPath.refresh()
XPath.find_element_by_XPath ("//input[started-with(@id, 'gsc')]")。
send_keys ("Selenium")
XPath.close()
- Ends-with方法意味着字符串以给定的文本结束。下面是ends-with方法的语法,如下所示。
语法 -
driver.find_element_path (input [ends-with (@stud_name, stud)])
- 上述语法,我们正在搜索包含stud_name的输入标签和包含stud文本的属性。
- 下面是XPath regex中 ends-with方法的例子,如下所示。在下面的例子中,我们首先通过使用selenium包来导入webdriver。
代码 -
从selenium导入webdriver
XPath = webdriver.Chrome (executable_path = "C:\\chromedriver.exe")
XPath.maximize_window()
XPath.get ("www.example.com/index.htm")
XPath.refresh()
XPath.find_element_by_XPath("//input[ends-with(@name, stud)]")。
send_keys ("Selenium")
XPath.close()
XPath regex函数
- 当属性值很长的时候,代码会很混乱,我们需要从所述属性中获取唯一的文本,并需要通过使用CSS选择器或XPath生成正则表达式。下面是XPath的正则函数,如下所示。
- Fn:matches - 这个函数将接受正则表达式和主题字符串作为输入。如果我们的正则表达式在任何字符串中被匹配,那么这个函数将返回true。如果假设函数没有匹配任何字符串,那么它将返回false。当我们只想在正则表达式匹配整个字符串时返回真值时,我们需要使用锚点。
- Fn:replace - 该函数将替换字符串作为输入,并将主题作为正则表达式中的字符串。它将通过使用regex的模式返回所有匹配的新字符串,并且它被替换成替换的文本。我们可以使用1到99美元来捕获替换到组中。零元将插入所有的regex匹配。0美元将插入整个regex匹配的内容。反斜线和字面意思将用反斜线转义。零长度的匹配不被替换函数所替换,它将引发一个错误而不是返回一个输出。
- Fn:tokenize - 它看起来像其他编程语言中的spit函数。这个函数将返回一个字符串数组,该数组由regex的所有匹配主题中的所有其他子字符串组成。该数组将不包含regex的匹配项。如果 regex 匹配了主题字符串中的第一个和最后一个字符,那么最后一个和第一个字符串将在一个数组中产生。Tokenize不能处理零长度的正则表达式。
总结
XPath regex插件用于匹配包含一个或多个来自xml文档中属性和元素的唯一值的样式。XPath regex帮助我们使用定位一个属性的部分,该部分保持一致,用于识别网页中的元素。
推荐的文章
这是一个关于XPath regex的指南。在这里,我们分别讨论了定义,什么是XPath regex,如何使用XPath regex,以及带有代码实现的例子。
The postXPath regexappeared first onEDUCBA.