什么是正确的xpath?

时间:2019-08-20 21:31:53

标签: python selenium selenium-webdriver xpath selenium-firefoxdriver

表中输入的html相同。它用td来区分,但这是输入之前的行。我可以通过find_element_by_id("col3-month46")找到td,但这不是输入的位置。我该如何写一个xpath来找到td,然后转到输入?

我尝试使用xpath(我相信这是我要去输入的方式)。

<td _ngcontent-c4="" class="text-center ng-pristine ng-valid ng-touched" formarrayname="timedoe" id="col11-month44">
        <!---->
        <input _ngcontent-c4="" max="24" maxlength="4" min="0"  name="Monthtime" size="2"             class="ng-pristine ng-valid ng-touched" type="number">                    
                                        </td>
<td _ngcontent-c4="" class="text-center ng-pristine ng-valid ng-touched" formarrayname="timedoe" id="col3-month45">
         <input _ngcontent-c4="" max="24" maxlength="4" min="0" name="Monthtime" size="2"             class="ng-pristine ng-valid ng-touched" type="number">                    
                                        </td>
<td _ngcontent-c4="" class="text-center ng-pristine ng-valid ng-touched" formarrayname="timedoe" id="col3-month46">
         <input _ngcontent-c4="" max="24" maxlength="4" min="0" name="Monthtime" size="2"             class="ng-pristine ng-valid ng-touched" type="number">                    
                                        </td>

当我通过ID找到它时,它说它不是输入字段。如果要通过input标签找到它,则使用硒时,它将仅在第一个实例处输入,而不在我想要的位置输入。

3 个答案:

答案 0 :(得分:2)

您可以找到所需的td元素,然后搜索其子input元素。

因此,此XPath应该适合您:

//td[@id="col3-month46"]/input

在Python Selenium中:

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

答案 1 :(得分:2)

似乎您想在input中获得一个具有唯一ID的parent,您可以使用xpath来实现。在您的情况下,您inputname = Monthtime,而parentid = col3-month45,所以请尝试以下方法:

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

答案 2 :(得分:0)

您可以使用Chropath扩展名检查Xpath单击检查并选择ChroPath,您将看到Xpath:

这里是链接https://regex101.com/r/PGsguA/1

“这里是屏幕快照” https://chrome.google.com/webstore/detail/chropath/ljngjbnaijcbncmcnjfhigebomdlkcjo

您还可以通过单击复制按钮来复制XPath。此扩展将为您提供REL XPATH〜ABS XPATH〜CSS SELECTOR

这里是链接:

enter image description here

FIREFOX的此扩展也是FIREFOX链接:

https://chrome.google.com/webstore/detail/chropath/ljngjbnaijcbncmcnjfhigebomdlkcjo