Как автоматизировать выбор даты в Selenium с помощью NodeJS?

#javascript #node.js #selenium #selenium-webdriver

Вопрос:

Я попытался автоматизировать следующий выбор даты : введите описание изображения здесь

Это код, который я написал, чтобы автоматизировать его с помощью Selenium NodeJS :

 const { By, Key, Builder, WebElement, Alert } = require('selenium-webdriver');
require('chromedriver');

async function login(){
  const driver = await new Builder().forBrowser('chrome').build();

  
  await driver.get('https://www.carnextdoor.com.au/search');

  await driver.findElement(By.name('location')).clear();

  let city = 'Sydney Airport, Airport Dr, Sydney, New South Wales 2020, Australia';
  await driver.findElement(By.name('location')).sendKeys(city);
  await driver.findElement(By.name('location')).sendKeys(Key.RETURN);


  

  await driver.findElement(By.css('.cyp-datetime-picker-modal')).click();

  await driver.findElement(By.css('.mbsc-cal-next-m')).click();
  await driver.findElement(By.css('.mbsc-cal-next-m')).click();
  await driver.findElement(By.css('.mbsc-cal-next-m')).click();
  await driver.findElement(By.css('.mbsc-cal-next-m')).click();
  await driver.findElement(By.css('.mbsc-cal-next-m')).click();
  await driver.findElement(By.css('.mbsc-cal-next-m')).click();
  await driver.findElement(By.css('.mbsc-cal-next-m')).click();

  
  


   await driver.quit();
}

login(); 

Я мог перемещаться по месяцам, но не мог выбрать диапазон дат. Я был бы очень признателен, если бы кто-нибудь научил меня, как выбрать диапазон дат из средства выбора дат. 🙂

Ответ №1:

Попытался использовать xpath для поиска дат. Удалось выбрать даты.

 driver.get("https://www.carnextdoor.com.au/search")
fromdate= "'Monday, August 2 '"
todate = "'Thursday, August 5 '"
driver.find_element_by_xpath("//button[@class='cnd-btn cnd-filter-btn cyp- datetime-picker-modal']").click()
driver.find_element_by_xpath("//div[@aria-label= {} and @aria- disabled='true']".format(fromdate)).click()
driver.find_element_by_xpath("//div[@aria-label= {} and @aria-disabled='true']".format(todate)).click()
driver.find_element_by_xpath("//button[text()='Confirm time']").click()