2013-06-07 6 views
1

Я просмотрел несколько решений для выбора выпадающих элементов, но никто из них не работает для меня.Как выбрать элемент из этого выпадающего меню в Python/Selenium?

Это html для выпадающего списка.

<div class="goog-inline-block goog-flat-menu-button" role="button" style="-moz-user-select: none;" tabindex="3" aria-haspopup="true"> 
    <div class="goog-inline-block goog-flat-menu-button-caption">Resolved</div> 
    <div class="goog-inline-block goog-flat-menu-button-dropdown">&nbsp;</div> 
</div> 

Я пробовал найти выпадающий список по ссылке xpath и ссылку без успеха.

EDIT: Вот код, я использую

import contextlib 
import selenium.webdriver as webdriver 
import selenium.webdriver.support.ui as ui 
from selenium.webdriver.common.keys import Keys 
import re 
with contextlib.closing(webdriver.Firefox()) as driver: 
    driver.get("https://websitename.com/#ticket/123456") 
    wait = ui.WebDriverWait(driver, 30) 
    wait.until(lambda driver: driver.find_element_by_xpath("//div[@class='goog-inline-block goog-flat-menu-button")) 
    driver.find_element_by_xpath("//div[@class='goog-inline-block goog-flat-menu-button").click() 
    driver.find_element_by_xpath("//div[@class='goog-inline-block goog-flat-menu-button").send_keys("R") 
    wait6 = ui.WebDriverWait(driver, 30) 

код должен изменить выбранный выпадающий список элементов из назначен решен.

ответ

0

Какой адрес xpath вы пытались?

Простейших я вижу:

driver.find_element_by_xpath("//div[contains(@class, 'goog-flat-menu-button-dropdown')]") 

Однако я немного запутался о вашем запросе о «выборе», как это не select элемента, так что я извиняюсь, я не конечно, я могу помочь там.

Попробуйте приведенные ниже способом с помощью CSS Selector

driver.find_element_by_cssselector(".goog-flat-menu-button > .goog-flat-menu-button-dropdown").click(); 

Я уверен, что выше CSS Selector будет работать.

+0

Я должен был быть более ясным. Я хочу изменить выбранный элемент в раскрывающемся списке. – JStew

0

Развернуть раскрывающееся меню (xpath = // div [@ class = 'goog-inline-block goog-flat-menu-button'), а затем нажмите кнопку, чтобы выбрать его.

обе операции можно сделать щелчком в Selenium IDE.
если щелчок не работает, тогда попробуйте нажмитеAt локаторы.

+0

Я пробовал это, и он не распознал xpath. Я редактировал свой оригинальный вопрос с помощью кода, который я пытаюсь использовать. – JStew

+0

Я не уверен, как работает clickAt. – JStew