2016-12-04 20 views
-1

私はnodejsでselenium-webdriverを使ってページをスクラップしています。ページの1つの要素は、画像を取得したいキャプチャです。私は検索してきましたが、私はそれを行うためのJavaコードまたはPythonコードしか見つかりませんでした。Selenium webdriver nodejs - 画像を切り抜く方法

は、これまでのところ私が得た:

function writeScreenshot(data, name) { 
    name = name || 'ss.png'; 
    var screenshotPath = '/Users/Projects/screenshots/'; 
    fs.writeFileSync(screenshotPath + name, data, 'base64'); 
}; 

driver.takeScreenshot().then(function(data) { 
    writeScreenshot(data, 'out1.png'); 
}); 

//location of captcha 
var capt = driver.findElement(webdriver.By.xpath('myXPath'); 
var location = capt.getLocation(); 
var captAltura = capt.getSize().getHeight(); 
var captLargura = capt.getSize().getWidth(); 

ページのスクリーンショットが働いています。 "// captchaの場所"が設定されている2番目の部分私は進める方法がわからないので、わからない。 イメージをトリミングするにはどうすればいいですか?

- 更新(HTMLコード)

<form name="form" method="POST"> 
<table width="750" cellspacing="0" cellpadding="0" border="0"> 
    <tbody> 
    <tr bgcolor="#CCCCCC"> 
     <td width="100%" height="31" align="center"> 
     <font class="code">Code:</font> 
     <input type="text" name="captcha" size="4" maxlength="4" value="" title="Security Code" class="inputcaptcha" onclick="this.select()"> 
     <img src="captcha.php" width="90" align="middle"> 
     </td> 
    </tr> 
    </tbody> 
</table> 
</form> 
+0

おそらく ''myXPath''をcaptchaのxpathに変更する必要があります。 – Ouroborus

+0

@Ouroborusまあ、私は質問のために編集しました。コードでは、xpathは正しいです。一度すべての情報を取得したら、ウェブページのスクリーンショット全体をキャプチャだけに切り抜けることができますか? –

+0

できません。あなたは2つの異なることが起こっています。コードの最初の部分がページのスクリーンショットを取得しています。これはcaptchaに関して特に有用ではない。最後の部分は、実際にページ内にキャプチャ画像を配置しようとしています。そのためには、キャプチャ画像の要素を見つけ、画像のURLを抽出し、画像を別々に取得します。 – Ouroborus

答えて

0

私は図書館easyimageを使用して終了。参照:https://stackoverflow.com/a/32111192/3383534

まず、穴のページのスクリーンショットを取り、必要な要素に切り抜きます。ここで

は、私はそれをやった方法は次のとおりです。

function cropInFile (valorWidth, valorHeight, valorX, valorY, srcFile){ 
    easyimg.crop(
     { 
      src: pathFile, 
      dst: pathFile, 
      cropwidth: valorWidth, 
      cropheight: valorHeight, 
      x: valorX, 
      y: valorY, 
      gravity: 'North-West' 
     }, 
     function(err, stdout, stderr) { 
      if (err) throw err; 
     } 
    ); 
}; 

これらのパラメータ: valorWidth、valorHeight、valorX、valorYしたい要素のためのものです。最後は最初のスクリーンショットです。

関連する問題