Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Selenium-WebDriver不识别元素,但IDE识别相同的元素_Java_Selenium_Webdriver_Selenium Ide - Fatal编程技术网

Java Selenium-WebDriver不识别元素,但IDE识别相同的元素

Java Selenium-WebDriver不识别元素,但IDE识别相同的元素,java,selenium,webdriver,selenium-ide,Java,Selenium,Webdriver,Selenium Ide,我正在汤姆森假日网站()上做一个样本作业。在左侧有一个假日搜索面板。我无法识别WebDriver中的任何这些元素。然而,在IDE中,这些元素是可以识别的。需要更多的信息,因为这是我第一次遇到这样的问题。下面是代码示例: WebDriver=newfirefoxdriver(); driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS); 驱动程序。获取(“http://www.thomson.co.uk/holidays.htm

我正在汤姆森假日网站()上做一个样本作业。在左侧有一个假日搜索面板。我无法识别WebDriver中的任何这些元素。然而,在IDE中,这些元素是可以识别的。需要更多的信息,因为这是我第一次遇到这样的问题。下面是代码示例:

WebDriver=newfirefoxdriver();
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
驱动程序。获取(“http://www.thomson.co.uk/holidays.html");
driver.findElement(By.id(“searchbutton”))。单击();
driver.findElement(By.id(“holidayAttribute_1”))。单击();
driver.findElement(By.id(“holidayAttribute_2”))。单击();
driver.findElement(By.id(“holidayAttribute_3”))。单击();
睡眠(5000);

因为它们在iframe中,所以需要先切换到iframe

添加到现有代码中的两行代码如下:


因为它们在iframe中,所以需要首先切换到iframe

添加到现有代码中的两行代码如下:


搜索面板位于iframe内。由于iframe是第一个iframe,因此可以使用以下代码

    driver.get("http://www.thomson.co.uk/holidays.html");

    // switch to search frame
    driver.switchTo().frame(0);

    driver.findElement(By.id("searchbutton")).click();
    driver.findElement(By.id("holidayAttribute_1")).click();
    driver.findElement(By.id("holidayAttribute_2")).click();
    driver.findElement(By.id("holidayAttribute_3")).click();

搜索面板位于iframe内。由于iframe是第一个iframe,因此可以使用以下代码

    driver.get("http://www.thomson.co.uk/holidays.html");

    // switch to search frame
    driver.switchTo().frame(0);

    driver.findElement(By.id("searchbutton")).click();
    driver.findElement(By.id("holidayAttribute_1")).click();
    driver.findElement(By.id("holidayAttribute_2")).click();
    driver.findElement(By.id("holidayAttribute_3")).click();

很有魅力。。也许我在这个问题上花了100个小时。。因为我能够在IDE中找到id,但不能通过Python脚本中的find_element_by_id找到。。在文档中似乎没有提到这一点。但这是一个非常有用的提示,它清楚地定义了IDE和Python脚本之间的区别。。非常感谢:)@UberNeo:不用担心。如果人们仔细检查DOM,他们会考虑框架是否会导致问题,然后通过一点谷歌搜索就能说明一切。IDE使事情变得混乱。工作起来很有魅力。。也许我在这个问题上花了100个小时。。因为我能够在IDE中找到id,但不能通过Python脚本中的find_element_by_id找到。。在文档中似乎没有提到这一点。但这是一个非常有用的提示,它清楚地定义了IDE和Python脚本之间的区别。。非常感谢:)@UberNeo:不用担心。如果人们仔细检查DOM,他们会考虑框架是否会导致问题,然后通过一点谷歌搜索就能说明一切。IDE使事情变得混乱。