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 通过xpath传递用于查找元素的变量_Python_Selenium_Xpath - Fatal编程技术网

Python 通过xpath传递用于查找元素的变量

Python 通过xpath传递用于查找元素的变量,python,selenium,xpath,Python,Selenium,Xpath,我开发这个程序是为了使用selenium在python中执行一些自动化任务。系统将提示用户输入其项目名称。然后程序将打开网站,选择与用户输入的名称相同的项目。我将使用xpath选择元素。但是,如果站点上有许多项目,它们都具有相同的类。所以我想我可以使用xpath来选择类,但是传入//text(这里是user\u project\u name)。下面是我拥有的xpath和我尝试选择的html HTML元素(将href留空,因为如果我使用它,它将无法计算出我希望程序的状态): 如果我正确理解您的问题

我开发这个程序是为了使用selenium在python中执行一些自动化任务。系统将提示用户输入其项目名称。然后程序将打开网站,选择与用户输入的名称相同的项目。我将使用xpath选择元素。但是,如果站点上有许多项目,它们都具有相同的
类。所以我想我可以使用xpath来选择类,但是传入
//text(这里是user\u project\u name)
。下面是我拥有的xpath和我尝试选择的html

HTML元素(将href留空,因为如果我使用它,它将无法计算出我希望程序的状态):


如果我正确理解您的问题,我认为以下方法应该有效:

element3 = driver.find_elements_by_xpath('//a[@class="js-filter-text" and contains(text(), "{}")]'.format(input_variable)).click()

如果我正确理解您的问题,我认为以下方法应该有效:

element3 = driver.find_elements_by_xpath('//a[@class="js-filter-text" and contains(text(), "{}")]'.format(input_variable)).click()
试试这个

driver.find_element_by_xpath("//a[@class= "js-filter-text"]//text(),' " + variablename + " '')
试试这个

driver.find_element_by_xpath("//a[@class= "js-filter-text"]//text(),' " + variablename + " '')

感谢您的回复,当我在程序中使用.click()尝试此操作时,最后我得到了此错误
AttributeError:“list”对象没有属性“click”
我同意您的语法,但我刚刚意识到它应该是“按xpath查找元素”而不是“按xpath查找元素”。前者返回一个不能“单击”的列表。如果这不起作用,请告诉我。感谢您的回复,当我在程序中使用.click()尝试此操作时,最后我得到了此错误
AttributeError:“list”对象没有属性“click”
我同意您的语法,但我刚刚意识到它应该是“按xpath查找元素”而不是“按xpath查找元素”。前者返回一个不能“单击”的列表。如果不行,请告诉我
driver.find_element_by_xpath("//a[@class= "js-filter-text"]//text(),' " + variablename + " '')