[英]What's the correct xpath?
表格內的輸入的 html 是相同的。 它由 td 區分,但這是輸入之前的行。 我可以通過find_element_by_id("col3-month46")
找到 td 但這不是輸入所在的位置。 我如何編寫一個找到 td 然后轉到輸入的 xpath?
我曾嘗試使用 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 找到它時,它說它不是輸入字段。 如果我通過輸入標簽找到它,那么使用 selenium 它只會在第一個實例中輸入,而不是我想要的地方。
您可以找到您要查找的td
元素,然后搜索其子input
元素。
所以這個 XPath 應該適合你:
//td[@id="col3-month46"]/input
在 Python Selenium 中:
find_element_by_xpath('//td[@id="col3-month46"]/input')
似乎您希望在parent
獲得具有唯一 id 的input
,您可以使用xpath
來實現這一點。 在您的情況下,您input
name = Monthtime
並且parent
具有id = col3-month45
,因此請嘗試以下方法:
find_element_by_xpath('//input[@name="Monthtime" and ./parent::*[@id="col3-month45"]]')
您可以使用 Chropath 擴展檢查您的 Xpath 當您單擊檢查並選擇 ChroPath 時,您將看到您的 Xpath:
這里有鏈接: https : //chrome.google.com/webstore/detail/chropath/ljngjbnaijcbncmcnjfhigebomdlkcjo
您也可以通過單擊復制按鈕來復制您的 XPath 此擴展程序將為您提供 REL XPATH ~ ABS XPATH ~ CSS 選擇器
這里有鏈接:
https://chrome.google.com/webstore/detail/chropath/ljngjbnaijcbncmcnjfhigebomdlkcjo
這個擴展也適用於 Firefox 這里是 Firefox 鏈接:
https://addons.mozilla.org/en-US/firefox/addon/chropath-for-firefox/?src=search
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.