Очистка данных через API после действий с кнопками - PullRequest
0 голосов
/ 19 октября 2019

Я хочу получить данные из ответа https, но они появляются только после нажатия на кнопку с открытым диалоговым окном (см. Скриншот ниже), поэтому мне нужно открыть все необходимые окна, а затем запустить request.get. Основная сложность в том, что я не понимаю, как создать request.get для того же окна, где я запускаю команду driver.get.

import requests
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("start-maximized")
driver = webdriver.Chrome(options=chrome_options)
driver.get(url)
XPATH = "//*[name()='svg' and contains(@class, 'jss350')]"
XPATH2 = '/html/body/div[3]/div[3]/div/div[3]/button/span[1]'

# Wait for all svg elements to be clickable
WebDriverWait(driver, 20).until(EC.presence_of_all_elements_located((By.XPATH, XPATH)))

# find list of svg elements
svg_elements = driver.find_elements_by_xpath(XPATH)

for element in svg_elements[3:4]:
    element.click() #open windows
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, XPATH2))).click() #close

#here is I want to run the request.get function to grab data from the same window

driver.quit()

params = {
    'products': 'RU',
}


url = 'my url'

r = requests.get(url, params=params, headers={
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'})
json_data = r.json()
print(r.url)
print(r.text)

enter image description here

1 Ответ

0 голосов
/ 19 октября 2019

API могут работать независимо от действий пользовательского интерфейса (селен автоматизирован). Это означает, что вы можете передавать необходимые данные в POST или Get, и ответ API доступен. Поэтому нет необходимости открывать конкретное окно / диалоговое окно, вы можете попробовать просто передать данные API в клиент POSTMAN / также в вашем коде.

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