2017-09-26 3 views
-2

en essayant d'écrire un test qui consiste à cliquer sur un bouton avec deux mots comme indiqué dans le code ci-dessous. Click_on ("Autres filtres") ne fonctionne pas car le bouton se compose de mots distincts et lorsque vous cliquez dessus, le bouton devient "moins de filtres". Aucun des sélecteurs CSS ne semble fonctionner ou le Xpath.comment cliquer sur un bouton dynamique multi-mots avec concombre et capybara

Le filtre peut être vu dans le lien (https://www.redfin.com/city/10940/CA/Long-Beach/filter/sort=lo-distance,viewport=33.82154881308594:33.718551986914065:-118.12507494921876:-118.26240405078126,no-outline,geo-address=Long+Beach%0C+CA%0C+USA)

<button class="button Button wideSidepaneFilterButton v3 compact text" type="button" tabindex="0" data-rf-test-id="filterButton" data-reactid="133"> 
<span data-reactid="134"> 
<span class="wideSidepaneMoreText" data-reactid="135">More</span> 
<span class="wideSidepaneFiltersText" data-reactid="136">Filters</span> 
<svg class="SvgIcon rfSvg show-less showMoreIcon rotate" data-reactid="137"> 
</span> 
</button> 

Répondre

0

Il n'y a pas d'espace réel entre les deux mots alors essayez

click_button(“MoreFilters”) 

Le code suivant montre que cela fonctionne aussi longtemps que vous utilisez actuellement sélénium, comme indiqué par vos étiquettes, pour vos tests

require 'capybara/dsl' 
require 'selenium-webdriver' 

session = Capybara::Session.new(:selenium_chrome) 
session.visit "https://www.redfin.com/city/10940/CA/Long-Beach/filter/sort=lo-distance,viewport=33.82154881308594:33.718551986914065:-118.12507494921876:-118.26240405078126,no-outline,geo-address=Long+Beach%0C+CA%0C+USA" 

session.click_button('MoreFilters') 
+0

il me donne un élément d'erreur introuvable (Impossible de trouver le bouton visible "MoreFilters" (Capybara :: ElementNotFound)) – user8673269

+0

@ user8673269 J'ai ajouté du code qui montre que cela fonctionne sans l'espace, je suppose que vous n'utilisez pas un pilote compatible JS –