類比登陸時,經常會遇到有驗證碼的問題,那麼就需要把驗證碼給截取下來。
如下為截取驗證碼程式,該程式的原始地址為:http://www.cnblogs.com/donaldlee2008/p/5304504.html
有需要配置運行程式的請聯絡我:1563178220@qq.com
package login;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import javax.imageio.ImageIO;import org.apache.commons.io.FileUtils;import org.openqa.selenium.By;import org.openqa.selenium.OutputType;import org.openqa.selenium.Point;import org.openqa.selenium.TakesScreenshot;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.firefox.FirefoxDriver;public class Test1 { public static void main(String[] args) throws IOException { System.setProperty("webdriver.gecko.driver", "chrome\\geckodriver.exe"); WebDriver driver = new FirefoxDriver();; driver.get("http://weixin.sogou.com/antispider/?from=%2fweixin%3Ftype%3d2%26query%3dz+%26ie%3dutf8%26s_from%3dinput%26_sug_%3dy%26_sug_type_%3d"); WebElement ele = driver.findElement(By.id("seccodeImage")); // Get entire page screenshot java.io.File screenshot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); BufferedImage fullImg = ImageIO.read(screenshot); // Get the location of element on the page Point point = ele.getLocation(); // Get width and height of the element int eleWidth = ele.getSize().getWidth(); int eleHeight = ele.getSize().getHeight(); // Crop the entire page screenshot to get only element screenshot BufferedImage eleScreenshot= fullImg.getSubimage(point.getX(), point.getY(), eleWidth, eleHeight); ImageIO.write(eleScreenshot, "png", screenshot); // Copy the element screenshot to disk File screenshotLocation = new File("E:/錢洋個人/IdentifyingCode/test.png"); FileUtils.copyFile(screenshot, screenshotLocation); WebElement classelement = driver.findElement(By.className("p2")); String errorText=classelement.getText(); System.out.println("驗證碼"+classelement.getText()); }}
如下,為我程式運行結果:
很神奇,網頁中的驗證碼被成功截取到了本地。