0

我想根据前一个 td --> 143753 的值来定位输入,考虑到我会将值 143753 放入变量中,因此我可以选择我想要选择的任何行。

<td style="width:11%;">143753</td>
<td align="right" style="width:10%;">
    <input type="submit" name="ctl00$cphContent$wucOrderPos$gvPOSSelection$ctl03$btnSelectPos" value="Select" id="cphContent_wucOrderPos_gvPOSSelection_btnSelectPos_1" class="button">
</td>

此屏幕截图将使我想要做的更清楚:

此屏幕截图将使我想做的事情更加清晰

我的尝试:

//*[@value="Select"]//preceding-sibling::td[@text()='143753']
4

3 回答 3

0

在这种情况下,仅 contains(text(),'') 对我有用

//td[contains(text(),'174013')]/following-sibling::td/input[@value="Select"]
于 2020-12-13T22:45:58.993 回答
0

如果 td 值为 '143753',我希望您想获取输入字段值:

//td[text()='143753']/following-sibling::td/input[@value="Select"]

所以在这里我们将首先使用您提到的值检查 td,然后检查它是否有任何带有标签 td 的后续兄弟,然后我们将查看它是否具有值为“select”的直接子元素输入

于 2020-12-02T16:46:50.717 回答
0

要定位您需要诱导WebDriverWait的元素visibilityOfElementLocated(),您可以使用以下基于Locator Strategy

  • Java解决方案:

    WebElement element = new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//td[text()='143753']//following-sibling::td[1]/input[@class='button' and @value='Select']")));
    
  • Python解决方案:

    element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//td[text()='143753']//following-sibling::td[1]/input[@class='button' and @value='Select']")))
    
  • 注意Python解决方案):您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
于 2020-12-02T16:20:15.490 回答