2015-07-07 4 views
0

Я использую C# с Selenium Web Driver. Проблема в том, что я не могу найти кнопку запуска, у которой нет значения ID.Не удается найти кнопку, у которой нет 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 ("(// a [содержит (текст(), 'Start')]) [16]")). Click();

Я попытался следующие, но он не работает:

driver.FindElement (By.XPath ("(// вход [@ имя = 'product_id'] [@ значение = '74' ])" .)) Нажмите();

Заранее спасибо

ответ

0

Для нажатия на кнопку «Пуск» по тексту «Кибер ответственностью» выше, вы можно попробовать ниже: XPath

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

Это местонахождение a элемент с innerHTML/текст Start который является потомком узла div элемента с атрибутом class, как product-item-inner, который является предком h3 элемента ш ith innerHTML/text как Cyber Liability.

+0

Привет Субх - Спасибо. Это решение сработало для меня. Cheers – Kenito

+0

Рад, что это сработало для вас. Примите этот ответ тоже .. :) – Subh

0

Вы не можете нажать на скрытый элемент. Если юй хотите найти ссылку запуска прямо рядом с скрытый элемент вы можете сделать это следующим образом:

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

Самым важным атрибутом элемента является атрибут href, который указывает назначение ссылки. Вы можете использовать его следующим образом:

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

Вы можете попробовать использовать CssSelector для поиска кнопки запуска.

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

Это решение от Subh.

//h3[.='Cyber ​​ответственностью ']/предок :: DIV [@ класс =' продукт-товар-внутренний '] // а [=.' Start ']

Смежные вопросы