неуправляемое всплывающее окно
Я пытаюсь найти места в Риме, Италия. Все идет хорошо, пока не появится всплывающее окно «Больше фильтров», и, когда я пытаюсь отфильтровать свой поиск, я не могу прокрутить вниз, чтобы проверить некоторые дополнительные характеристики. Пробовал это и с JSExecutor, и переключая фокус на всплывающее окно. Не сработало Вот код:
let webdriver = require('selenium-webdriver');
let chrome = require('selenium-webdriver/chrome');
// let moment = require('moment');
// let assert = require('assert');
const {
By,
Key,
until
} = require('selenium-webdriver');
let options = new chrome.Options().addArguments('start-maximized');
let driver = new webdriver.Builder().setChromeOptions(options).forBrowser('chrome').build();
driver.manage().setTimeouts({
pageLoad: 10000
})
driver.get('https://www.airbnb.com/');
search = async () => {
(await driver).findElement(By.id('Koan-magic-carpet-koan-search-bar__input')).sendKeys('Rome, Italy', Key.RETURN);
(await driver).findElement(By.xpath('//*[@id="checkin_input"]'));
let checkInDate = await driver.wait(until.elementLocated(By.xpath('//*[@id="FMP-target"]/div/div[1]/div/div/div/div/div/div[2]/div/form/div[2]/div/div/div/div[2]/div/div/div/div/div/div[2]/div[2]/div/div[2]/div/table/tbody/tr[2]/td[1]')));
checkInDate.click();
let checkOutdate = await driver.wait(until.elementLocated(By.xpath('//*[@id="FMP-target"]/div/div[1]/div/div/div/div/div/div[2]/div/form/div[2]/div/div/div/div[3]/div/div/div/div/div/div[2]/div[2]/div/div[2]/div/table/tbody/tr[4]/td[7]')));
checkOutdate.click();
let guestPicker = await driver.wait(until.elementLocated(By.css('#lp-guestpicker')));
guestPicker.click();
let adult = await driver.wait(until.elementLocated(By.css('#FMP-target > div > div._ogalm0 > div > div > div > div > div > div:nth-child(2) > div > form > div:nth-child(3) > div > div._e296pg > div > div > div:nth-child(1) > div:nth-child(1) > div > div > div > div._ni9axhe > div > div._1a72ixey > button')));
adult.click();
adult.click();
let kid = await driver.wait(until.elementLocated(By.css('#FMP-target > div > div._ogalm0 > div > div > div > div > div > div:nth-child(2) > div > form > div:nth-child(3) > div > div._e296pg > div > div > div:nth-child(1) > div:nth-child(2) > div > div > div > div._ni9axhe > div > div._1a72ixey > button')));;
kid.click();
let saveSelection = await driver.wait(until.elementLocated(By.className('_b0ybw8s')));
saveSelection.click();
let search = await driver.wait(until.elementLocated(By.className('_1vs0x720')));
search.click();
}
search();
moreFilters = () => {
let moreFilters = driver.wait(until.elementLocated(By.css('#menuItemButton-dynamicMoreFilters > button')));
moreFilters.click();
let extraBedrooms = driver.wait(until.elementLocated(By.css('#filterItem-stepper-min_bedrooms-0 > button:nth-child(3)')));
for (i = 0; i < 5; i++) {
extraBedrooms.click(i);
}
let pop = driver.getWindowHandle();
driver.switchTo().window(pop);
let element = driver.findElement(By.css('body > div:nth-child(75) > section > div > div > div._12k64q0 > div:nth-child(6) > div > div:nth-child(3) > div._cfvh61 > div > button'));
driver.executeScript("arguments[0].scrollIntoView(true);", element);
}
moreFilters();