2013-04-05 15 views
8

Piszę kod automatyzacji w Capybara z Selenium. Mam następujący element w moim kodzie HTML i chcę go kliknąć w Capybara.Wybór elementu z wieloma klasami w Capybara

<a href="#" class="classA classB">click me</a> 

Obecnie działa to coś w rodzaju podążania.

find('.classA', :text=>"click me").click 

Ale chcę wybrać element z nazwiskami dwóch klasach jak to

find('a.classA.classB').click 
click_on('a.classA.classB') 

Wiem, że możemy uzyskać kod javascript zwolniony, ale to nie jest mądry.

page.execute_script('$("a.classA.classB").click()') 

Odpowiedz

12

Można wyszukiwać element przez xpath

opartej na przykład, wydaje się poniżej powinny działać

//div[contains(@class, 'classA') and contains(@class, 'classB')] 

Można również użyć css

(:css, ".classA.classB") 
+0

Dziękuję za twoja odpowiedź, ale wciąż otrzymuję ten sam błąd. Kapibara :: ElementNotFound: Nie można znaleźć łącza lub przycisku "// * [zawiera (concat ('', @ klasa, ''), 'klasa A') i (zawiera (concat ('', @ klasa, ''), 'classB'))] " – Ryo

+0

@Ryo, dokonałem edycji, wypróbuję to. Jeśli to nie zadziała, możemy spróbować czegoś innego. – Amey

+0

Dziękuję! Drugi zadziałał, tak naprawdę podoba mi się to znalezisko (: css, ".classA.classB",: visible => true) .click – Ryo

Powiązane problemy