场景: 启动http://www.indiabookstore.net/ 。点击iframe内的 FB like button 。(向下滚动查看)
问题: 我可以切换到iframe,但无法点击按钮,因为有 NoSuchElementException
我尝试过给出相对和绝对的xpath,但是没有用。任何指针都将受到赞赏。
谢谢
答案 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();