Выберите форму автозаполнения - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь выбрать элемент из списка автозаполнения, используя Python и Selenium, и по какой-то причине я не могу выбрать элемент, который появляется из автозаполнения (MTG - MORTGAGE) - и по какой-то причине WebdriverWait не понят:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import requests, time
from bs4 import BeautifulSoup
import xlwt


driver = webdriver.Firefox(executable_path="geckodriver")
driver.get("https://www.okcc.online/")

time.sleep(2)

section_selector = driver.find_element_by_xpath('//*[@id="rod-menu-button"]')
section_selector.click()

time.sleep(2)

document_type = driver.find_element_by_xpath('//*[@id="rodDocTypeTxt"]').send_keys('MTG')

WebDriverWait.until(EC.visibility_of(driver.find_element_by_xpath('//*[@id="ui-id-10"]')))

driver.find_element_by_xpath('//*[@id="rodDocTypeTxt"]').send_keys(Keys.ARROW_DOWN).click()

1 Ответ

0 голосов
/ 17 апреля 2020

Ваш элемент присутствует в li, поэтому вам нужно разобраться с этим, пожалуйста, проверьте приведенный ниже код для справки.

    driver.get("https://www.okcc.online/")
    driver.maximize_window()
    wait = WebDriverWait(driver, 10)
    wait.until(EC.element_to_be_clickable((By.XPATH, "//*[@id='rod-menu-button']"))).click()
    wait.until(EC.element_to_be_clickable((By.XPATH, "//input[@id='rodDocTypeTxt']"))).send_keys('MD')
    wait.until(EC.element_to_be_clickable((By.XPATH, "//ul[@id='ui-id-1']//li//div"))).click()

Выход: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...