【问题标题】:Select a date from Jquery, date picker using selenium webdriver从 Jquery 中选择一个日期,使用 selenium webdriver 的日期选择器
【发布时间】:2018-01-17 10:19:43
【问题描述】:
  1. 进入jquery官网https://jqueryui.com/datepicker/

不允许点击输入文本,即使它有唯一的 id="datepicker" 得到一个错误元素未找到异常但是当我通过添加 jquery 日期选择器在本地运行时,它就像一个魅力。谁能帮我弄不明白!

2) 通过使用此 url,我可以选择任何内容,但它不适用于 jquery 官方网站,正如我上面提到的 https://jqueryui.com/resources/demos/datepicker/default.html

下面是我没有工作的实际代码

System.setProperty("webdriver.chrome.driver","C:\\ProgramFiles\\chromedriver.exe");

      driver=new ChromeDriver();
      driver.manage().window().maximize();
      driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
      driver.get("https://jqueryui.com/datepicker/");
      Thread.sleep(5000);
      driver.findElement(By.id("datepicker")).click();

【问题讨论】:

  • 把你的网址改成jqueryui.com/resources/demos/datepicker/default.html然后试试
  • 我为什么要更改我的网址
  • 因为日期选择器在 IFrame 内,我给你 IFrame 的直接 URL,这样你就可以测试你的逻辑。否则使用您在@DebanjanB 答案中看到的内容

标签: selenium selenium-webdriver


【解决方案1】:

带有id="datepicker" 的元素在frame 内。所以我们要先切换到预期的frame,然后定位到元素,然后调用click()方法如下:

System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
WebDriver driver=new ChromeDriver();
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
driver.get("https://jqueryui.com/datepicker/");
driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@class='demo-frame'][@src='/resources/demos/datepicker/default.html']")));
driver.findElement(By.id("datepicker")).click();
System.out.println("Datepicker Clicked");

【讨论】:

    猜你喜欢
    • 2014-02-19
    • 1970-01-01
    • 2019-03-22
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多