如何使用selenium网络驱动程序处理日期选择器(jss)



我正在尝试使用selenium webdriver和python对一个旅游网站进行web抓取。到目前为止,我可以设置目的地(destino(和原产地(origem(,但似乎不可能选择日期。我知道我需要使用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')

我尝试过使用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

最新更新