0

I've been trying to make a selection from a dropdown menu, but it wont work. I tried many things yet. And yes, I also tried "time.sleep()" which was suggested in another thread.

This seems to be the code:

<div class="goog-inline-block p6n-space-left-medium">
<div class="p6n-dropdown-menu p6n-dropdown-menu-open p6n-dropdown-button-pressed" role="menubar" ng-class="{'p6n-no-chevron': panMenuCtrl.hideChevron, 'p6n-dropdown-open-left': panMenuCtrl.openLeft, 'p6n-dropdown-button-pressed': !panMenuCtrl.collapsed}" track-metadata-type="traffic" track-metadata-api="maps-android-backend.googleapis.com" track-name="toggleChartFilter" track-type="api" tabindex="0">
<a class="goog-flat-menu-button" tabindex="-1">
<span> Nach Antwortcode </span>
</a>
<div class="p6n-dropdown-container" role="menu" pan-add-sections="" ng-if="!panMenuCtrl.collapsed || panMenuCtrl.usesCustomOpener" aria-hidden="false" style="right: initial; left: 0px; top: -114px;">
<section class="p6n-dropdown-section" role="group" ng-click="$event.stopPropagation()" tabindex="0">
<div class="p6n-dropdown-section-loader">
<div class="p6n-dropdown-group-scroll" tabindex="-1">
<div class="p6n-dropdown-group">
<div class="p6n-dropdown-row p6n-dropdown-checkbox ng-pristine ng-untouched ng-valid ng-not-empty" aria-checked="true" aria-label="" tabindex="-1" ng-class="{disabled: ctrl.isDisabled()}" track-metadata-type="traffic" track-metadata-value="Nach Antwortcode" track-metadata-api="maps-android-backend.googleapis.com" track-name="clickChartFilterItem" track-type="api" ng-value="item" ng-model="$ctrl.selectedTraffic" ng-disabled="item.disabled" ng-repeat="item in ::$ctrl.trafficMenuItems" role="menuitemradio" aria-disabled="false" value="[object Object]" aria-invalid="false">
<div class="p6n-dropdown-row p6n-dropdown-checkbox ng-pristine ng-untouched ng-valid ng-not-empty disabled" aria-checked="false" aria-label="" tabindex="-1" ng-class="{disabled: ctrl.isDisabled()}" track-metadata-type="traffic" track-metadata-value="Nach API-Methode" track-metadata-api="maps-android-backend.googleapis.com" track-name="clickChartFilterItem" track-type="api" ng-value="item" ng-model="$ctrl.selectedTraffic" ng-disabled="item.disabled" ng-repeat="item in ::$ctrl.trafficMenuItems" role="menuitemradio" aria-disabled="true" value="[object Object]" disabled="disabled" aria-invalid="false">
<input class="ng-pristine ng-untouched ng-valid ng-not-empty" type="radio" tabindex="-1" ng-model="extractedModel" ng-value="ctrl.extractValue(ngValue)" name="680" value="[object Object]" aria-invalid="false">
<span class="p6n-dropdown-item">
<span class="p6n-dropdown-meta"></span>
</div>
<div class="p6n-dropdown-row p6n-dropdown-checkbox ng-pristine ng-untouched ng-valid ng-not-empty disabled" aria-checked="false" aria-label="" tabindex="-1" ng-class="{disabled: ctrl.isDisabled()}" track-metadata-type="traffic" track-metadata-value="Nach API-Version" track-metadata-api="maps-android-backend.googleapis.com" track-name="clickChartFilterItem" track-type="api" ng-value="item" ng-model="$ctrl.selectedTraffic" ng-disabled="item.disabled" ng-repeat="item in ::$ctrl.trafficMenuItems" role="menuitemradio" aria-disabled="true" value="[object Object]" disabled="disabled" aria-invalid="false">
<div class="p6n-dropdown-row p6n-dropdown-checkbox ng-pristine ng-untouched ng-valid ng-not-empty" aria-checked="false" aria-label="" tabindex="-1" ng-class="{disabled: ctrl.isDisabled()}" track-metadata-type="traffic" track-metadata-value="Nach Anmeldedaten" track-metadata-api="maps-android-backend.googleapis.com" track-name="clickChartFilterItem" track-type="api" ng-value="item" ng-model="$ctrl.selectedTraffic" ng-disabled="item.disabled" ng-repeat="item in ::$ctrl.trafficMenuItems" role="menuitemradio" aria-disabled="false" value="[object Object]" aria-invalid="false">
</div>
<div pan-infini-scroll-element=".p6n-dropdown-group-scroll" pan-infini-scroll-on-append="panMenuSectionCtrl.append()" pan-infini-scroll=""> </div>
</div>
</div>
</section>
</div>
</div>
</div>
</h2>

Dropdown Menu

Dropdown Menu

I want to select "Nach Anmeldedaten".

Now I reached that the Dropdown-Menu opens, that worked with this code:

browser.find_element_by_xpath('//*[@track-name="toggleChartFilter"]').click()

But I can't select "Nach Anmeldedaten". I tried with:

browser.find_element_by_xpath('//*[@track-metadata-value="Nach Anmeldedaten"]').click()

But I get this error:

selenium.common.exceptions.ElementNotInteractableException: Message: Element <div class="p6n-dropdown-row p6n-dropdown-checkbox ng-pristine ng-untouched ng-valid ng-not-empty"> could not be scrolled into view
J. Peuker
  • 1
  • 1
  • Welcome to Stack Overflow! Please read [Why is “Can someone help me?” not an actual question?](https://meta.stackoverflow.com/q/284236) – NightOwl888 Mar 02 '18 at 08:49
  • Possible duplicate of [How to resolve ElementNotInteractableException in Selenium webdriver?](https://stackoverflow.com/questions/43868009/how-to-resolve-elementnotinteractableexception-in-selenium-webdriver) – undetected Selenium Mar 03 '18 at 13:09
  • I tried the suggestions from the Thread you linked. But if I'd already solved my Problem with the suggestions I wouldn't ask here ;) – J. Peuker Mar 05 '18 at 06:21

1 Answers1

0

After you've opened the drop-down menu, try this:

driver.find_element_by_xpath("//*[contains(text(), 'Nach Anmeldedaten')]").click()

Alichino
  • 1,668
  • 2
  • 16
  • 25