私は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>
おそらく ''myXPath''をcaptchaのxpathに変更する必要があります。 – Ouroborus
@Ouroborusまあ、私は質問のために編集しました。コードでは、xpathは正しいです。一度すべての情報を取得したら、ウェブページのスクリーンショット全体をキャプチャだけに切り抜けることができますか? –
できません。あなたは2つの異なることが起こっています。コードの最初の部分がページのスクリーンショットを取得しています。これはcaptchaに関して特に有用ではない。最後の部分は、実際にページ内にキャプチャ画像を配置しようとしています。そのためには、キャプチャ画像の要素を見つけ、画像のURLを抽出し、画像を別々に取得します。 – Ouroborus