Python Selenium Выпадающее меню Выбрать - PullRequest
0 голосов
/ 02 октября 2018

Чтобы открыть раскрывающееся меню "Страна" на этой странице , я использую этот XPath с Selenium:

driver.find_elements_by_xpath('//div[@class="masterCustomDropDown"]/img')[3].click() 

Поскольку иногда он не приводит к ошибкам и фактически не выполняет щелчокВ действии я обычно проверяю, видны ли элементы в раскрывающемся меню, чтобы увидеть, была ли выполнена функция щелчка.Есть ли лучший способ сделать это?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

Чтобы щелкнуть в раскрывающемся меню County , вам необходимо:

  • Induce WebDriverWait для получения желаемого кадра ипереключитесь на него
  • Induce WebDriverWait , чтобы требуемый элемент можно было нажимать , и вы можете использовать следующее решение:
  • Блок кода:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    options = Options()
    options.add_argument("start-maximized")
    options.add_argument("disable-infobars")
    options.add_argument("--disable-extensions")
    driver = webdriver.Chrome(chrome_options=options, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
    driver.get("https://reports.blm.gov/report/LR2000/23/Pub-MC-Geo-Index")
    WebDriverWait(driver, 20).until(EC.frame_to_be_available_and_switch_to_it((By.ID,"dispReport")))
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//label[@title='County']//following::img[1]"))).click()
    
  • Снимок браузера:

Country

0 голосов
/ 02 октября 2018

Вы можете попробовать использовать Select()

//Create a new select element
Select choose = new Select(driver.find_elements_by_xpath('//div[@class="masterCustomDropDown"]/img'))

//Select the element at the 3rd index in the Select element we have reference to
choose.selectByIndex(3)
...