51Testing
怬
µçÄÔ°æ

selenium ¶¯Ì¬ÅÀÈ¡Ò³ÃæʹÓý̳ÌÒÔ¼°Ê¹Óð¸Àý£¨2£©

2023-12-04 09:24×÷Õߣº²ÔìÏÀ´Ô´£ºCSDN

¡¡¡¡6£º¿ØÖÆä¯ÀÀÆ÷²Ù×÷
¡¡¡¡ä¯ÀÀÆ÷´°¿Ú²Ù×÷
¡¡¡¡WebDriver ¸øÎÒÃÇÌṩÁËÒ»¸ö Window ¶ÔÏó£¬×¨ÃÅÓÃÓÚ¶Ô´°¿ÚµÄÉèÖá£
¡¡¡¡¶ÔÏó»ñÈ¡·½·¨£º
¡¡¡¡Window window = driver.manage().window();
¡¡¡¡Window ¶ÔÏóµÄ·½·¨ÓУº
¡¡¡¡ä¯ÀÀÆ÷µ¼º½²Ù×÷
¡¡¡¡WebDriver ÌṩÁË Navigation ¶ÔÏóÀ´¶Ôä¯ÀÀÆ÷½øÐе¼º½²Ù×÷£¬È磺ǰ½ø¡¢ºóÍË¡¢Ë¢Ðµȡ£
¡¡¡¡Navigation ¶ÔÏó»ñÈ¡£º
¡¡¡¡Navigation navigate = driver.navigate();
¡¡¡¡Navigation ¶ÔÏóÌṩµÄ·½·¨£º
¡¡¡¡7£ºµ¯³ö¿ò/¾¯¸æ¿ò´¦Àí
¡¡¡¡²Ù×÷alert¡¢confirmµ¯³ö¿ò£¬¿ÉÒÔͨ¹ýAlert ¶ÔÏóÀ´½øÐвÙ×÷£¬AlertÀà°üº¬ÁËÈ·ÈÏ¡¢È¡Ïû¡¢ÊäÈëºÍ»ñÈ¡µ¯³ö´°ÄÚÈÝ¡£
¡¡¡¡Alert¶ÔÓ¦ÊôÐԺͷ½·¨£º
¡¡¡¡// Ê×ÏÈÐèÒªÇл»µ½µ¯³ö¿òÖУ¬»ñÈ¡Alert¶ÔÏó¡£
¡¡¡¡Alert alert = driver.switchTo().alert();
¡¡¡¡// »ñÈ¡µ¯´°Îı¾ÄÚÈÝ
¡¡¡¡alert.getText();
¡¡¡¡// µã»÷È·¶¨°´Å¥
¡¡¡¡alert.accept();
¡¡¡¡// µã»÷È¡Ïû°´Å¥
¡¡¡¡alert.dismiss();
¡¡¡¡×¢£ºÈç¹ûµ¯³ö¿ò²»ÊÇ js Ô­ÉúµÄ alert µ¯´°£¬ÎÒÃÇ»¹ÊÇ°´ÕÕÔ­À´µÄ»ñÈ¡ÔªËصķ½·¨¡£
¡¡¡¡8£ºiframe Çл»/¶à±íµ¥Çл»
¡¡¡¡ÓÐʱºòÎÒÃǶ¨Î»ÔªËصÄʱºò£¬·¢ÏÖÔõô¶¼¶¨Î»²»ÁË¡£ ÕâʱºòÄãÐèÒª²éÒ»²éÄãÒª¶¨Î»µÄÔªËØÊÇ·ñÔÚiframeÀïÃæ¡£
¡¡¡¡Ê²Ã´ÊÇiframe£¿
¡¡¡¡iframe ¾ÍÊÇHTML ÖУ¬ÓÃÓÚÍøҳǶÌ×ÍøÒ³µÄ¡£ Ò»¸öÍøÒ³¿ÉÒÔǶÌ×µ½ÁíÒ»¸öÍøÒ³ÖУ¬¿ÉÒÔǶÌ׺ܶà²ã¡£
¡¡¡¡ÀýÈ磺
¡¡¡¡main.html
¡¡¡¡<html>
¡¡¡¡<head>
¡¡¡¡  <title>FrameTest</title>
¡¡¡¡</head>
¡¡¡¡<body>
¡¡¡¡  <div id="id1">this is main page's div!</div>
¡¡¡¡  <input type="text" id="maininput" />
¡¡¡¡  <br/>
¡¡¡¡  <iframe id="frameA" frameborder="0" scrolling="no" style="left:0;position:absolute;" src="frame.html"></iframe>
¡¡¡¡</body>
¡¡¡¡</html>
¡¡¡¡frame.html
¡¡¡¡<html>
¡¡¡¡<head>
¡¡¡¡  <title>this is a frame!</title>
¡¡¡¡</head>
¡¡¡¡<body>
¡¡¡¡  <div id="div1">this is iframes div£¬</div>
¡¡¡¡  <input id="iframeinput"></input>
¡¡¡¡</body>
¡¡¡¡</html>
¡¡¡¡Ê¹ÓÃselenium ²Ù×÷ä¯ÀÀÆ÷ʱ£¬Èç¹ûÐèÒª²Ù×÷iframeÖеÄÔªËØ£¬Ê×ÏÈÐèÒªÇл»µ½¶ÔÓ¦µÄÄÚÁª¿ò¼ÜÖС£
¡¡¡¡selenium ¸øÎÒÃÇÌṩÁËÈý¸öÖØÔصķ½·¨£¬½øÐвÙ×÷iframe£»
¡¡¡¡// ·½·¨Ò»:ͨ¹ý iframeµÄË÷ÒýÖµ£¬ÔÚÒ³ÃæÖеÄλÖÃ
¡¡¡¡driver.switchTo().frame(index);
¡¡¡¡// ·½·¨¶þ£ºÍ¨¹ý iframe µÄname »òÕßid
¡¡¡¡driver.switchTo().frame(nameOrId);
¡¡¡¡// ·½·¨Èý£ºÍ¨¹ýiframe ¶ÔÓ¦µÄwebElement        
¡¡¡¡driver.switchTo().frame(frameElement);
¡¡¡¡´úÂ룺
¡¡¡¡public static void testIframe(WebDriver driver){
¡¡¡¡    // ÔÚ Ö÷´°¿ÚµÄʱºò
¡¡¡¡    driver.findElement(By.id("maininput")).sendKeys("main input");
¡¡¡¡    // ´Ëʱ ûÓнøÈëµ½iframe, ÒÔÏÂÓï¾ä»á±¨´í
¡¡¡¡    //driver.findElement(By.id("iframeinput")).sendKeys("iframe input");
¡¡¡¡    driver.switchTo().frame("frameA");
¡¡¡¡    driver.findElement(By.id("iframeinput")).sendKeys("iframe input");
¡¡¡¡    // ´ËʱûÓÐÔÚÖ÷´°¿Ú£¬ÏÂÃæÓï¾ä»á±¨´í
¡¡¡¡    //driver.findElement(By.id("maininput")).sendKeys("main input");
¡¡¡¡    // »Øµ½Ö÷´°¿Ú
¡¡¡¡    driver.switchTo().defaultContent();
¡¡¡¡    driver.findElement(By.id("maininput")).sendKeys("main input"); 
¡¡¡¡}
¡¡¡¡×¢£ºÈç¹ûÒѾ­Çл»½øÈëÁËÆäÖеÄÒ»¸ö iframe ÖУ¬ÔÙÏë¶Ô iframe ÍâµÄÔªËؽøÐвÙ×÷£¬ÐèÒªÇл»»Øµ½Ä¬ÈϵÄÒ³ÃæÖУ¬·ñÔò»áÕÒ²»µ½ÔªËØ¡£
¡¡¡¡// Çл»µ½Ä¬ÈÏÄÚÈÝÒ³Ãæ
¡¡¡¡driver.switchTo().defaultContent();
¡¡¡¡9£ºä¯ÀÀÆ÷´°¿ÚµÄÇл»/¶à´°¿ÚÇл»
¡¡¡¡ÓÐʱºòºóÔÚ²Ù×÷ä¯ÀÀÆ÷£¬¿ÉÄÜ´ò¿ªÁËÒ»¸öеĴ°¿Ú£¬Õâ¸öʱºòÈç¹ûÒª¶Ôд°¿ÚµÄÔªËؽøÐвÙ×÷£¬ÐèÒªÇл»µ½Ð´°¿ÚÖÐÈ¥£¬ÔõôȥÇл»ÄØ£¿ÔÚ selenium ÖÐÓиö½Ð¾ä±úµÄ¸ÅÄî¡£
¡¡¡¡Ê²Ã´ÊǾä±ú£¬¼òµ¥Àí½â¾ÍÊÇä¯ÀÀÆ÷´°¿ÚµÄÒ»¸ö±êʶ£¬ä¯ÀÀÆ÷´ò¿ªµÄÿ¸ö´°¿Ú¶¼ÓÐΨһµÄÒ»¸ö±êʶ£¬Ò²¾ÍÊǾä±ú£¬ÎÒÃÇ¿ÉÒÔͨ¹ý¾ä±úÀ´½øÐд°¿ÚÖ®¼äµÄÇл»£¬´Ó¶øÀ´´ïµ½ÎÒÃDzÙ×÷²»Í¬´°¿ÚµÄÔªËØ¡£
¡¡¡¡WebDriver ÖÐÌṩÁËÁ½¸ö API À´»ñÈ¡´°¿ÚµÄÏà¹Ø¾ä±ú£º
¡¡¡¡// »ñÈ¡µ±Ç°´°¿ÚµÄ¾ä±ú
¡¡¡¡String handle = driver.getWindowHandle();
¡¡¡¡// »ñÈ¡ËùÓд°¿ÚµÄ¾ä±ú£¬·µ»ØÒ»¸ö¼¯ºÏ
¡¡¡¡Set<String> handles = driver.getWindowHandles();
¡¡¡¡»ñÈ¡µ½¾ä±úºó£¬Í¨¹ý¶ÔÓ¦µÄ·½·¨½øÐÐÇл»£º
¡¡¡¡// Çл»µ½´°¿Ú
¡¡¡¡driver.switchTo.windwo(String handle);
¡¡¡¡Ê¾Àý´úÂ룺
¡¡¡¡/**
¡¡¡¡* Çл»´°¿ÚµÄ·½·¨
¡¡¡¡* ͨ¹ý´«ÈëÒ»¸ö±êÌâÀ´ÕÒµ½ÎÒÃÇÐèÒªµÄ´°¿Ú¡£
¡¡¡¡* @param title ´°¿ÚµÄ±êÌâ
¡¡¡¡*/
¡¡¡¡public void switchWindow(String title){
¡¡¡¡    Set<String> handles = driver.getWindowHandles();
¡¡¡¡    // Çл»´°¿ÚµÄ·½Ê½--Ñ­»·±éÀúhandles¼¯ºÏ
¡¡¡¡    for (String handle : handles) {
¡¡¡¡        //ÅжÏÊÇÄÄÒ»¸öÒ³ÃæµÄ¾ä±ú£¿£¿--¸ù¾ÝʲôÀ´Åжϣ¿£¿£¿title
¡¡¡¡        if(driver.getTitle().equals(title)){
¡¡¡¡        break;
¡¡¡¡    }else{
¡¡¡¡        //Çл»´°¿Ú--¸ù¾Ý´°¿Ú±êʶÀ´Çл»
¡¡¡¡        driver.switchTo().window(handle);
¡¡¡¡    }
¡¡¡¡}
¡¡¡¡10£ºselect ÏÂÀ­¿ò´¦Àí
¡¡¡¡Èç¹ûÒ»¸öÒ³ÃæÔªËØÊÇÒ»¸öÏÂÀ­¿ò£¨select£©£¬¶ÔÓ¦ÏÂÀ­¿òµÄ²Ù×÷£¬seleniumÓÐרÃŵÄÀà Select ½øÐд¦Àí¡£ÆäÖаüº¬Á˵¥Ñ¡ºÍ¶àÑ¡ÏÂÀ­¿òµÄ¸÷ÖÖ²Ù×÷£¬Èç»ñµÃËùÓеÄÑ¡ÏѡÔñijһÏȡÏûÑ¡ÖÐijһÏî¡¢ÊÇ·ñÊǶàÑ¡ÏÂÀ­¿òµÈ¡£
¡¡¡¡SelectÀà³£ÓõÄһЩ·½·¨£º
¡¡¡¡Ê¾Àý´úÂ룺
¡¡¡¡ // ´´½¨Çý¶¯
¡¡¡¡ WebDriver driver = new ChromeDriver();
¡¡¡¡ // ´ò¿ª2345ÍøÕ¾
¡¡¡¡ driver.get("https://www.2345.com");
¡¡¡¡ // Çл»³ÇÊÐ
¡¡¡¡ driver.findElement(By.linkText("Çл»")).click();
¡¡¡¡ // Çл»µ½iframeÄÚÁª¿ò¼ÜÖÐ
¡¡¡¡ driver.switchTo().frame("city_set_ifr");
¡¡¡¡ // ¶¨Î»µ½Ê¡·ÝÏÂÀ­¿ò
¡¡¡¡ WebElement province = driver.findElement(By.id("province"));
¡¡¡¡ province.click();
¡¡¡¡ // ´´½¨Select¶ÔÏó
¡¡¡¡ Select select = new Select(province);
¡¡¡¡ // ¸ù¾ÝÎı¾À´»ñÈ¡ÏÂÀ­Öµ
¡¡¡¡ select.selectByVisibleText("B ±±¾©");
¡¡¡¡ driver.quit();
¡¡¡¡±¾ÎÄÄÚÈݲ»ÓÃÓÚÉÌҵĿµÄ£¬ÈçÉ漰֪ʶ²úȨÎÊÌ⣬ÇëȨÀûÈËÁªÏµ51TestingС±à(021-64471599-8017)£¬ÎÒÃǽ«Á¢¼´´¦Àí
selenium ×Ô¶¯»¯²âÊÔ¿ò¼Ü
µ±Ç°Ã»ÓÐÆÀÂÛµã»÷·¢±íÆÀÂÛ

Ïà¹ØÔĶÁ