无法单击iframe内的按钮

时间:2015-01-06 06:22:25

标签: iframe selenium-webdriver

场景: 启动http://www.indiabookstore.net/ 。点击iframe内的 FB like button 。(向下滚动查看)

问题: 我可以切换到iframe,但无法点击按钮,因为有 NoSuchElementException

我尝试过给出相对和绝对的xpath,但是没有用。任何指针都将受到赞赏。

谢谢

3 个答案:

答案 0 :(得分:1)

尝试这种方式......

driver.switchTo().frame(
        driver.findElements(By.tagName("iframe")).get(2));
new WebDriverWait(driver, 20).until(
    ExpectedConditions.elementToBeClickable(By
        .xpath("(//span[.='Like'])[1]"))).click();

答案 1 :(得分:1)

我尝试了几次通过WebDriver执行,但是像按钮这样的facebook没有出现。所以我尝试使用以下代码的Twitter,这对我有用。

WebDriver driver = new FirefoxDriver();
        driver.get("http://www.indiabookstore.net/");
        Thread.sleep(10000);
        driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@class='home-twitter']")));
        driver.findElement(By.xpath("//span[@class='label']")).click();

观看上述视频,观看此视频,了解有关帧间切换的更多信息:https://www.youtube.com/watch?v=yYv_7-zYz4k

答案 2 :(得分:0)

以下代码适用于fb Like按钮:

WebDriver driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.get("https://www.indiabookstore.net/");

driver.switchTo().frame(driver.findElement(By.xpath("//html/body/div[1]/div[11]/div[1]/div[2]/div[1]/div/span/iframe")));
WebElement fb = driver.findElement(By.xpath("//html/body/div/div/div/table/tbody/tr/td[1]/div/form/div/div[1]"));//fb Like button

Actions builder = new Actions(driver);
builder.moveToElement(fb).click().build().perform();
driver.switchTo().defaultContent();