2016-07-18 14 views
0

Ich versuche, ein Dropdown-Menü auf der Website www.ziprecruiter.com mit Selenium namens Radius zu wählen und zu steuern. Da ich ein Anfänger bin, kann ich nicht herausfinden, warum ich dieses eine Drop-Down-Radius-Menü nicht kontrollieren kann. Ich habe versucht, nach ID, Name, Xpath und suchen zu finden, aber nichts scheint zu funktionieren. Ich möchte die Option "25 Meilen" im Dropdown-Menü "Radius" auswählen.Selenium Python Dropdown Nicht steuerbar

<label class="filter_headline" for="search_filters_radius">Distance</label> 
<menu id="select-menu-search_filters_radius" class="select-menu-menu" tabindex="-1"> 
<button class="select-menu-header">Anywhere</button> 
<div class="select-menu-submenu-wrapper"> 
<div class="select-menu-submenu-inner" style="left: 63.0667px; top: 145px;"> 
<menu class="select-menu-submenu"> 
<button class="select-menu-item select-menu-selected">Anywhere</button> 
<button class="select-menu-item">Within 100 miles</button> 
<button class="select-menu-item">Within 50 miles</button> 
<button class="select-menu-item">Within 25 miles</button>** 
<button class="select-menu-item">Within 10 miles</button> 
<button class="select-menu-item">Within 5 miles</button> 
</menu> 

Antwort

0

Manchmal Dropdown-Listen werden SELECT-Tags erstellt, aber das ist immer seltener als Orte der Drop-Down-Gefühl, mit verschiedenen Styling als die typische SELECT geben sie wollen. Was Sie auf dieser Seite haben, ist eine Instanz eines Dropdown-Menüs, das kein SELECT-Tag ist. Wenn es ein Select-Tag wäre, könnten Sie die eingebauten Methoden, select_by_*(), nutzen.

Da dies kein SELECT-Tag ist, müssen Sie auf das oberste Element klicken, um die Optionen anzuzeigen, und dann auf die gewünschte Option klicken, in Ihrem Fall "Innerhalb von 25 Meilen".

searchText = "Within 25 miles" 
// clicks the "Anywhere" dropdown 
driver.find_element_by_id("select-menu-search_filters_radius")).click(); 
// selects the desired option by text 
driver.find_element_by_id("//menu[@id='select-menu-search_filters_radius']//button[text()='" + searchText + "']")).click(); 
+0

Vielen Dank für die Erklärung! Ich schätze es. – Bill1

+0

Kein Problem. Da Sie neu auf der Website sind, lesen Sie bitte dieses Hilfethema, [Was soll ich tun, wenn jemand meine Frage beantwortet?] (Http://stackoverflow.com/help/someone-answers). – JeffC

Verwandte Themen