使用 JavascriptExecutor 的 Selenium Datepicker [英] Selenium Datepicker using JavascriptExecutor

查看:28
本文介绍了使用 JavascriptExecutor 的 Selenium Datepicker的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

请告知是否接受这种方法来使用 Selenium 取货

WebDriver driver = new ChromeDriver();driver.manage().window().maximize();driver.get("https://www.spicejet.com/");线程睡眠(3000);JavascriptExecutor js = ((JavascriptExecutor)driver);js.executeScript("document.getElementById('ctl00_mainContent_view_date1').removeAttribute('readonly',0);");WebElement onwards_date = driver.findElement(By.id("ctl00_mainContent_view_date1"));onwards_date.clear();onwards_date.sendKeys("28/02");js.executeScript("document.getElementById('ctl00_mainContent_view_date2').removeAttribute('readonly',0);");WebElement return_Date = driver.findElement(By.id("ctl00_mainContent_view_date2"));return_Date.clear();return_Date.sendKeys("27/03");

解决方案

在网站

  • 如何使用 javascript 使用 java 使用 selenium Webdriver 设置所选 Web 元素的属性?
  • Python - 如何在使用 Selenium 单击之前编辑源代码中的 href 属性
  • Please advise if this approach is accepted to pick-up date using Selenium

    WebDriver driver = new ChromeDriver();
    
    driver.manage().window().maximize();
    
    driver.get("https://www.spicejet.com/");
    
    Thread.sleep(3000);
    
    JavascriptExecutor js = ((JavascriptExecutor)driver);
    
    js.executeScript ("document.getElementById('ctl00_mainContent_view_date1').removeAttribute('readonly',0);"); 
    
    WebElement onwards_date = driver.findElement(By.id("ctl00_mainContent_view_date1"));
            onwards_date.clear();
            onwards_date.sendKeys("28/02"); 
    
    js.executeScript ("document.getElementById('ctl00_mainContent_view_date2').removeAttribute('readonly',0);"); 
    
    WebElement return_Date = driver.findElement(By.id("ctl00_mainContent_view_date2"));
            return_Date.clear();
            return_Date.sendKeys("27/03"); 
    

    解决方案

    To pick-up a date within the DEPART DATE field in the website https://www.spicejet.com/ using Selenium's executeScript() method from JavascriptExecutor you can use the following Locator Strategies:

    • Code Block:

        System.setProperty("webdriver.chrome.driver", "C:\Utility\BrowserDrivers\chromedriver.exe");
        ChromeOptions options = new ChromeOptions();
        options.addArguments("start-maximized");
        options.setExperimentalOption("excludeSwitches", Collections.singletonList("enable-automation"));
        options.setExperimentalOption("useAutomationExtension", false);
        WebDriver driver =  new ChromeDriver(options);
        driver.get("https://www.spicejet.com/");
        WebElement element = driver.findElement(By.cssSelector("input[name$= 'txt_Fromdate']"));
        ((JavascriptExecutor)driver).executeScript("arguments[0].removeAttribute('readonly')", element);
        WebElement newElement = driver.findElement(By.cssSelector("input[name$= 'txt_Fromdate']"));
        ((JavascriptExecutor) driver).executeScript("arguments[0].setAttribute('value','28/02')", newElement);
      

    • Browser Snapshot:


    References

    You can find a couple of relevant detailed discussions in:

    这篇关于使用 JavascriptExecutor 的 Selenium Datepicker的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

    查看全文
    相关文章
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆