找不到没有 ID 的按钮;按钮具有隐藏的属性值

本文关键字:按钮 隐藏 属性 找不到 ID | 更新日期: 2023-09-27 18:01:24

我正在使用带有Selenium Web驱动程序的C#。问题是我找不到没有 ID 值的开始按钮。

我为此对象找到的唯一唯一标识符是"value="74"文本。

按钮的 HTML 如下所示:

<div class="product-item-inner">
  <div class="product">
     <h3>Cyber Liability</h3>
     <p class="carrier-about">Lloyd's, London - AM BEST "A" (Excellent)</p>
  </div>
 <form action="/index.php?c=pcs.integrate" method="POST">
    <input value="74" name="product_id" type="hidden">
    <input value="" name="insured_id" type="hidden">
    <input value="" name="contract_class_id" type="hidden">
    <a href="#" class="product-information">Product Information</a>
    <a class="tile-button start" href="#">Start</a>
 </form> 
</div>

我能够使用 Firefox IDE 执行录制和播放(见下面的行(,但我需要一种方法来使用唯一标识符一致地定位按钮对象。

司机。FindElement(By.XPath("(//a[contains(text((,'Start'(]([16]"((.点击((;

我已经尝试了以下方法,但它不起作用:

司机。FindElement(By.XPath("(//input[@name='product_id'][@value='74']("((.点击((;

提前致谢

找不到没有 ID 的按钮;按钮具有隐藏的属性值

要单击与上面的文本"网络责任"相关的"开始"按钮,您可以尝试以下xpath:

//h3[.='Cyber Liability']/ancestor::div[@class='product-item-inner']//a[.='Start']
这将找到以 innerHTML/text 为Starta 元素,该元素是div元素的

后代节点class属性为 product-item-inner 这是h3元素的祖先,其中 innerHTML/text 为 Cyber Liability

您不能单击隐藏的元素。如果 yu 想在隐藏元素旁边找到开始链接,你可以这样做:

//a[..'input[@name='product_id'][@value='74']]

元素最重要的属性是 href 属性,它指示链接的目的地。你可以像这样使用它:

driver.findElement(By.linkText("Start")).click();

您可以尝试使用CssSelector来定位开始按钮。

driver.FindElement(By.CssSelector(".tile-button.start")).Click();

Subh 的这个解决方案奏效了。

/

/h3[.='Cyber Liability ']/ancestor::d iv[@class='product-item-inner']//a[.='Start']