2014-12-03 2 views
2

Источник HTML выглядеть следующим образом:Как нажать кнопку Купить сейчас, используя селен?

<script id="during-reserve-tpl" type="text/x-lodash-template"> 
<div class="gd-row"> 
    <div class="gd-col gu16"> 
     <div class="emailModule message module-tmargin"> 
      <div class="error-msg"></div> 
      <div class="register brdr-btm"> 
       <div class="jbv jbv-orange jbv-buy-big jbv-reserve">Buy Now</div> 
      </div> 
      <div class="topTextWrap brdr-btm tmargin20"> 
       <div class="subHeading"> 
        Only one phone per registered user 
        <p> 
        First come, first serve! 
        </p> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 
</script> 

Когда я код: IWebElement buy = driver.FindElement(By.CssSelector(".jbv.jbv-orange.jbv-buy-big.jbv-reserve")); Это говорит Элемент не найден.

Я попытался поместить By.ClassName с пробелами, но он говорит, что сложные классы не поддерживаются.

Есть альтернативные варианты щелчка по этому объекту?

ответ

1

driver.FindElement (By.cssselector ("div.jbv.jbv-orange.jbv-бай-big.jbv-резерв"))

В селекторе выше примере CSS ищет сОн тег с именем и он будет искать все точки с пространством

0

Вы можете попробовать любой из них:

IWebElement buy = driver.FindElement(By.CssSelector("div.register>div")); 

ИЛИ

IWebElement buy = driver.FindElement(By.CssSelector("div.register")); 
1

Попробуйте это By.xpath ("// * [содержит (@class, 'jbv')]"), если он работает.

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