Python 什么';正确的xpath是什么?
html对于表中的输入是相同的。它由td区分,但这是输入前的行。我可以通过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
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"]]')