在Python中添加XPath中的变量

时间:2018-01-03 18:24:20

标签: python selenium xpath

在进行自动化操作时,我必须检查我输入的电子邮件是否正确。不幸的是,在创建XPath时,UIAutomator正在向我显示我的电子邮件地址的文本。我想让XPath动态化,所以,每次,我都使用XPath,它获取文本。 让我们假设:

email = 'testqatp@gmail.com'

和XPath是:

[@text='email']

这怎么会起作用?

2 个答案:

答案 0 :(得分:0)

如果正在讨论输入可能是像这样的xpath

SparseArray

试一试:)

答案 1 :(得分:0)

Xpath语言通常可以让您在表达式的static context中定义变量(这是since XPath 1.0),some xpath libraries支持:

>>> expr = "//*[local-name() = $name]"

>>> print(root.xpath(expr, name = "foo")[0].tag)
foo

>>> print(root.xpath(expr, name = "bar")[0].tag)
bar

(这是基于libxml2的lxml python库,only supports XPath 1.0

不幸的是,Selenium对XPath only goes as far as the browser's internal XPath engine does的使用,不幸的是,DOM API for XPath没有公开这些功能。您必须坚持旧的字符串连接技巧,并记住要转义所有这些变量,以确保它们不会破坏您的xpath表达式。