如何使用Selenium Webdriver处理日期选择器(jss)?

问题描述 投票:0回答:1

[我正在尝试使用Selenium Webdriver和python来网络废弃旅行网站。到目前为止,我可以设置目的地(目的地)和原产地(原始位置),但是似乎无法选择日期。我知道我需要使用Java脚本来执行此操作,并且下面的代码是我一直尝试使用的代码,但是它无法正常工作。缺少什么?

#Opening webdriver and going to the website
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get("https://www.cvc.com.br/")

#Setting place of origin and destination
elem_saida = driver.find_element_by_xpath('//*[@id="__next"]/div/div[1]/div/div[1]/div/div[2]/div/div[1]/div/div[1]/div/div[3]/div/div[1]/input')
elem_saida.send_keys('São Paulo' + Keys.ARROW_DOWN + Keys.RETURN)

elem_chegada = driver.find_element_by_xpath('//*[@id="__next"]/div/div[1]/div/div[1]/div/div[2]/div/div[1]/div/div[3]/div/div[3]/div/div[1]/input')
elem_chegada.send_keys('Nova York' + Keys.ARROW_DOWN + Keys.RETURN)


MY ISSUE:
#Trying to pick up a date
element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//*[@id="__next"]/div/div[1]/div/div[1]/div/div[2]/div/div[2]/div/div[1]/div/p')))
driver.execute_script("arguments[0].value=arguments[1]",element,'15 mai - 23 mai')
javascript python css selenium
1个回答
0
投票

我尝试使用Java:

package bst;

import java.util.List;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

public class Cvc {

    public static void main(String[] args) throws InterruptedException {
        // init driver
        String chromeDriverPath = "C:\\Users\\pavel.burgr\\Desktop\\webdrivers\\chromedriver.exe";
        System.setProperty("webdriver.chrome.driver", chromeDriverPath);
        ChromeOptions options = new ChromeOptions();
        options.addArguments("--start-maximized");
        WebDriver driver = new ChromeDriver(options);

        // goto page and wait for load
        driver.get("https://www.cvc.com.br/");
        waitSec(driver, 30).until(ExpectedConditions.elementToBeClickable(By.className("jss645")));

        // open calenders
        WebElement selecionAsDatas = driver.findElement(By.className("jss645"));
        selecionAsDatas.click();
        Thread.sleep(500);

        // collect days as WebElements
        String commonClass = "CalendarDay CalendarDay_1 CalendarDay__default CalendarDay__default_2";
        String xpath = "//*[contains(@class,'" + commonClass + "')]";
        List<WebElement> availableDisplayedDays = driver.findElements(By.xpath(xpath));

        // select start and end dates
        WebElement startDate = availableDisplayedDays.get(0);
        WebElement endDate = availableDisplayedDays.get(1);
        startDate.click();
        endDate.click();
        Thread.sleep(500);

        // verify success
        String enteredDates = selecionAsDatas.getText();
        System.out.print(enteredDates);     

    }

    public static WebDriverWait waitSec(WebDriver driver, int sec) {
        return new WebDriverWait(driver, sec);
    } 

}

输出:

Starting ChromeDriver 80.0.3987.106 (f68069574609230cf9b635cd784cfb1bf81bb53a-refs/branch-heads/3987@{#882}) on port 4793
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
Dub 03, 2020 11:45:29 DOP. org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
[1585907130.491][SEVERE]: Timed out receiving message from renderer: 0.100
[1585907130.706][SEVERE]: Timed out receiving message from renderer: 0.100
[1585907130.867][SEVERE]: Timed out receiving message from renderer: 0.100
[1585907131.509][SEVERE]: Timed out receiving message from renderer: 0.100
[1585907132.621][SEVERE]: Timed out receiving message from renderer: 0.100
[1585907132.722][SEVERE]: Timed out receiving message from renderer: 0.100
[1585907132.824][SEVERE]: Timed out receiving message from renderer: 0.100
[1585907132.927][SEVERE]: Timed out receiving message from renderer: 0.100
[1585907133.030][SEVERE]: Timed out receiving message from renderer: 0.100
[1585907133.132][SEVERE]: Timed out receiving message from renderer: 0.100
[1585907133.233][SEVERE]: Timed out receiving message from renderer: 0.100
[1585907133.336][SEVERE]: Timed out receiving message from renderer: 0.100
[1585907133.437][SEVERE]: Timed out receiving message from renderer: 0.100
[1585907133.538][SEVERE]: Timed out receiving message from renderer: 0.100
[1585907133.639][SEVERE]: Timed out receiving message from renderer: 0.100
[1585907133.772][SEVERE]: Timed out receiving message from renderer: 0.100
[1585907133.960][SEVERE]: Timed out receiving message from renderer: 0.100
[1585907134.110][SEVERE]: Timed out receiving message from renderer: 0.100
[1585907134.626][SEVERE]: Timed out receiving message from renderer: 0.100
11 abr - 12 abr
© www.soinside.com 2019 - 2024. All rights reserved.