Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在不使用变量来定位该元素的情况下定位该元素?_Python_Selenium_Xpath_Webdriver_Automated Tests - Fatal编程技术网

Python 如何在不使用变量来定位该元素的情况下定位该元素?

Python 如何在不使用变量来定位该元素的情况下定位该元素?,python,selenium,xpath,webdriver,automated-tests,Python,Selenium,Xpath,Webdriver,Automated Tests,我试图使用selenium来定位此元素并单击此元素,但变量每次都会更改。我需要点击这个按钮“M”。如何在不使用“33246615686”的情况下定位此元素 M 尝试以下XPath: //label[text()="M"] 您可以使用文本“M”通过xpath查找它: //label[contains(text(),"M")] 您可以检查此url: 上面的答案会起作用,但这是脆弱代码的秘诀。我尽量避免使用标签文本。更好的定位器是: //label[starts-with(@for, 'varia

我试图使用selenium来定位此元素并单击此元素,但变量每次都会更改。我需要点击这个按钮“M”。如何在不使用“33246615686”的情况下定位此元素

M

尝试以下
XPath

//label[text()="M"]

您可以使用文本“M”通过xpath查找它:

//label[contains(text(),"M")]
您可以检查此url:


上面的答案会起作用,但这是脆弱代码的秘诀。我尽量避免使用标签文本。更好的定位器是:

//label[starts-with(@for, 'variant-select')]


此外,如果您将在本地化测试中使用此选项,它将失败,因为文本将使用测试时应用程序设置的语言环境编写。例如,中文的
M
将是
因此,
text()
将看不到此文本。在应用程序中考虑本地化?这样更好。

使用contains可能不是一个好主意。。你会得到所有标签上的字符“M”,这可能是很多…是的,对于这种情况,安德森的答案更好,但最好知道另一种选择。
//label[.="M"]
//label[starts-with(@for, 'variant-select')]
//label[contains(@for,'variant-select')]