webdriver
  • selenium-webdriver
  • 2013-03-15 55 views -1 likes 
    -1

    在makemytrip.com點擊取消鏈接後,將打開一個顯示'取消您的航班預訂'的新框架,這是一個框架。在這個框架中,我試圖點擊一個鏈接「關閉此窗口」。但是這沒有發生,在eclipse中它給元素不存在錯誤。在WebDriver中點擊一個框架中的鏈接

    這是代碼,

    driver.findElement(By.xpath("//div[@class='dialog_closepanel']//span//a[text()='close this window']")).click(); 
    

    我怎麼點擊此鏈接?

    回答

    0

    試試這個代碼:

    driver.findElement(By.cssSelector("span.ui-icon.ui-icon-closethick")).click(); 
    

    編輯:

    如果你看到一個鏈接和圖標關閉模式,試試這個:

    driver.findElement(By.linkText("close this window")).click(); 
    

    或者

    driver.findElement(By.cssSelector("img[alt=\"close\"]")).click(); 
    
    +0

    公共類Frame_demo { 公共靜態無效的主要(字串[] args){ webdriver的驅動=新FirefoxDriver(); driver.manage()。timeouts()。implicitlyWait(10,TimeUnit.SECONDS); driver.get(「http://www.makemytrip.com/」); driver.findElement(By.linkText(「Cancellation」))。click(); WebElement cframe = driver.findElement(By.xpath(「// iframe [@ id ='dlgov']」)); driver.switchTo().frame(cframe); (「//輸入[@ id ='bookingID']」))。sendKeys(「abcd」); driver.findElement(By.xpath(「// span // a」))。click(); driver.switchTo()。defaultContent(); \t //這是代碼ü可以運行2 C錯誤 \t }} – 2013-03-15 20:20:21

    +0

    你嘗試切換此行** driver.findElement(By.xpath( 「// //跨度一」))。點擊(); **這個** driver.findElement(By.cssSelector(「span.ui-icon.ui-icon-closethick」))。click(); **? – monteirobrena 2013-03-15 20:26:35

    +0

    是的,但它沒有工作 – 2013-03-15 20:28:09

    0

    嘗試這樣:

    public static int DEFAULT_IMPLICIT_WAIT = 30; 
    getElementByLocator(By.cssSelector("span.ui-icon.ui-icon-closethick")).click(); 
    

    從這個方法:

    public static WebElement getElementByLocator(By locator) { 
        long startTime = System.currentTimeMillis(); 
        driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); 
        WebElement we = null; 
        boolean unfound = true; 
        while (unfound) { 
        try { 
         we = driver.findElement(locator); 
         unfound = false; // FOUND IT 
        } catch (StaleElementReferenceException e) {      
         unfound = true; 
         try { 
         Thread.sleep(4000); 
         } catch (InterruptedException e1) { 
         e1.printStackTrace(); 
         } 
        }  
        } 
        // and finally the cleanup   
        driver.manage().timeouts().implicitlyWait(DEFAULT_IMPLICIT_WAIT, TimeUnit.SECONDS); 
        return we; 
    } 
    
    +0

    public class Frame_demo {public static void main(String [] args){WebDriver driver = new FirefoxDriver(); driver.manage()。timeouts()。implicitlyWait(10,TimeUnit.SECONDS); driver.get( 「makemytrip.com/」); 。driver.findElement(By.linkText( 「取消」))點擊(); WebElement cframe = driver.findElement(By.xpath(「// iframe [@ id ='dlgov']」)); driver.switchTo()幀(C框架)。 driver.findElement(By.xpath( 「//輸入[@ ID = 'bookingID']」))的SendKeys( 「ABCD」)。 。driver.findElement(By.xpath( 「// //跨度一」))點擊(); 。driver.switchTo()defaultContent(); \t //這是代碼你可以運行它2 c錯誤}} – 2013-03-15 20:23:26

    +0

    我更新並修復了代碼塊。 – djangofan 2013-03-15 22:28:32

    相關問題