无法找到没有ID的按钮; Button具有隐藏的属性值

时间:2015-07-07 22:39:20

标签: c# selenium-webdriver

我正在使用C#和Selenium Web Driver。问题是我无法找到没有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执行记录和播放(参见下面的行),但我需要一种方法来使用唯一标识符一致地找到按钮对象。

driver.FindElement(By.XPath(&#34;(//一个[含有(文本(),&#39;开始&#39)])[16]&#34))。单击() ;

我尝试了以下但是它无效:

driver.FindElement(By.XPath(&#34;(//输入[@name =&#39; PRODUCT_ID&#39;] [@值=&#39; 74&#39;])&#34; ))点击();

先谢谢

5 个答案:

答案 0 :(得分:0)

您无法点击隐藏的元素。如果你想找到隐藏元素旁边的开始链接,你可以这样做:

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

答案 1 :(得分:0)

点击&#39;开始&#39;关于上面的文字&#39;网络责任&#39; 的按钮,您可以尝试下面的xpath:

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

这会将带有innerHTML / text的a元素定位为Startdiv元素是class元素的后代节点,product-item-inner属性为h3 Cyber Liability元素的祖先,innerHTML / text为vincent <- function(v,n){ # v = vector to vincentize n = number of bin mean_vct <- array(0, n) vsort <- sort(v) #Tri dans l'ordre les TR for (j in seq(0,9)){ #pour chaque bin mean_vct[j] <- j } return (mean_vct) }

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

您可以尝试使用CssSelector找到开始按钮。

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

答案 4 :(得分:0)

Subh的这个解决方案工作了。

// h3 [。='Cyber​​ Liability'] / ancestor :: div [@ class ='product-item-inner'] // a [。='Start']