2015-06-27 4 views
2

Я работаю над обучением Codeception и сталкиваюсь с чем-то, что мне кажется странным.Код: я могу видеть ссылку, но не могу ее щелкнуть

// This works 
$I->see('Secure Check Out', '(//a[contains(text(),"Secure Check Out")])[2]'); 

// This does not 
$I->click('Secure Check Out', '(//a[contains(text(),"Secure Check Out")])[2]'); 

Не удалось нажать "Безопасный Check Out", "(// а [содержит (текст()," Безопасный Check Out ")]) [2]": Ссылка или кнопка или CSS или XPath «Безопасная проверка» не найдена на странице.

Работает против Firefox через Selenium WebDriver. Что я должен сделать, чтобы заставить это работать?

Вот приблизительный HTML-код.

<div class="mobile-only"> 
<a href="/responsive/ajax/modals/check-out/login.php" class="secure-checkout button blue bordered small modal-open">Secure Check Out</a> 
</div> 

<div class="secure-checkout-button threecol last mobile-hide"> 
<div class="pull-right"> 
<a style="background-color: transparent;" href="/responsive/ajax/modals/check-out/login.php" class="button blue bordered small modal-open">Secure Check Out</a> 
</div> 
</div> 
+0

Вы проверили селектор? Можете ли вы также предоставить некоторый html элемента? – Saifur

+0

@Saifur Я вытащил этот селектор из Selenium IDE в Firefox. Не уверен, что вы подразумеваете под тестированием. Он работает с IDE, и он работает в Codeception, с вызовом see. Страница, которую я тестирую, очень сложна, но я отбросил HTML как можно лучше в вопросе. –

ответ

4

Похоже, это только потому, что функция see позволяет два параметра и click делает только один в случае xpath. Так, согласно this, следует работать

$I->click('(//a[contains(text(),"Secure Check Out")])[2]'); 
+1

Вы, сэр, получаете мои интернет-очки. Спасибо за помощь! –

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

  • Нет связанных вопросов^_^