Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.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_Selenium Webdriver_Xpath_Selenium Firefoxdriver - Fatal编程技术网

Python 什么';正确的xpath是什么?

Python 什么';正确的xpath是什么?,python,selenium,selenium-webdriver,xpath,selenium-firefoxdriver,Python,Selenium,Selenium Webdriver,Xpath,Selenium Firefoxdriver,html对于表中的输入是相同的。它由td区分,但这是输入前的行。我可以通过find\u element\u by\u id(“col3-month46”)找到td,但这不是输入的地方。我如何编写一个xpath来查找td,然后转到输入 我尝试过使用xpath(我相信这就是我获取输入的方式) 当我通过ID找到它时,它说它不是一个输入字段。如果我要通过输入标签找到它,那么使用selenium,它只会在第一个实例中输入,而不是在我想要的地方输入。你可以找到你正在寻找的td元素,然后搜索它的子inpu

html对于表中的输入是相同的。它由td区分,但这是输入前的行。我可以通过
find\u element\u by\u id(“col3-month46”)
找到td,但这不是输入的地方。我如何编写一个xpath来查找td,然后转到输入

我尝试过使用xpath(我相信这就是我获取输入的方式)



当我通过ID找到它时,它说它不是一个输入字段。如果我要通过输入标签找到它,那么使用selenium,它只会在第一个实例中输入,而不是在我想要的地方输入。

你可以找到你正在寻找的
td
元素,然后搜索它的子
input
元素

因此,这个XPath应该适合您:

//td[@id="col3-month46"]/input
在Python Selenium中:

find_element_by_xpath('//td[@id="col3-month46"]/input')

单击inspect并选择Chropath时,您可以使用Chropath扩展来检查Xpath,您将看到您的Xpath:

这里有链接:

这里是截图:

您还可以通过单击复制按钮来复制XPath。此扩展将为您提供REL XPath~ABS XPath~CSS选择器

这里有链接:

FIREFOX的这个扩展是FIREFOX链接:


似乎您希望在
父项中获得具有唯一id的
输入
,您可以使用
xpath
来实现这一点。在您的情况下,
input
具有
name=Monthtime
parent
具有
id=col3-month45
,因此请尝试此方法:

find_element_by_xpath('//input[@name="Monthtime" and ./parent::*[@id="col3-month45"]]')

这不起作用,因为它给出了确切的路径,selenium没有使用它。它会起作用,尤其是它在abs路径上的工作。你可以试试它。你会看到你的工作很容易在其他响应和xpath上进行。太棒了!我的xpath是正确的,只是不知道如何找到它的子对象。输入工作正常。谢谢。我尝试了另一个评论(我有xpath到父级),在那里我添加了“/input”,这确实有效,但我也尝试了你的建议。它也同样有效。谢谢。因为简单,我标记了@Kamal的答案,但Frian的回答也很有效。
find_element_by_xpath('//input[@name="Monthtime" and ./parent::*[@id="col3-month45"]]')