Я использую selenium-webdriver с nodejs, чтобы отказаться от страницы. Один элемент страницы - это captcha, который я хочу захватить. Я искал, но я только нашел коды 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();
скриншот страницы работает. Вторая часть, где установлено «// location captcha», я не уверен, потому что я не знаю, как продолжить. Как я могу обрезать изображение?
- Update (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'' на xpath для captcha. – Ouroborus
@Ouroborus Ну, я только что отредактировал вопрос. В коде xpath правильный. Как только я получил всю эту информацию, как я могу обрезать весь скриншот веб-страницы, чтобы просто перехватить? –
Вы не можете. У вас есть две разные вещи. Первая часть вашего кода - это скриншот страницы. Это не особенно полезно в отношении капчей. Последняя часть пытается найти изображение captcha на странице. Для этого найдите элемент изображения captcha, извлеките URL для изображения, извлеките изображение отдельно. – Ouroborus