Я использую puppeteer-sharp для получения контента, загружаемого AJAX с веб-страницы. Мне нужно отправить форму, которая имеет следующую структуру:
<form action="" method="post" _lpchecked="1">
<div class="item">
<div class="title"><label for="login-username1">Username</label></div>
<div>
<input class="int-text" type="text" id="login-username1" name="login-username" value="" size="25" autocomplete="off" >
<span class="required" title="required item">*</span>
</div>
</div>
<div class="item">
<div class="title"><label for="login-password1">Password</label></div>
<div>
<input class="int-text" type="password" id="login-password1" name="login-password" size="25" autocomplete="off">
<span class="required" title="required item">*</span>
</div>
</div>
<div class="item">
<button type="submit" name="login-submit" class="inline-btn-2"><span><span>Login</span></span></button>
</div>
</form>
Сначала я заполнил два доступных ввода: login-username1
и login-password1
, используя следующий код:
using (Page page = await Browser.NewPageAsync())
{
await page.GoToAsync("https://www.oddsportal.com/login/");
await page.TypeAsync("#login-username1", "sfarzoso");
await page.TypeAsync("#login-password1", "password");
await page.ClickAsync("name=login-submit");
await page.WaitForNavigationAsync();
var c = await page.GetContentAsync();
}
проблема в том, что кнопка не имеет id
, а только атрибут name
, поэтому мой код возвращает:
PuppeteerSharp.EvaluationFailedException: «Оценка не выполнена: DOMException: не удалось выполнить« querySelector »для« Документа »:« name = login-submit »не является допустимым селектором.
в puppeteer_evaluation_script : 1: 33 '
эта ошибка произошла на
await page.ClickAsync("name=login-submit");
метод ClickAsync
хочет селектор, а у кнопки просто есть уникальный name
, кажется, что я не могу нажать на эту кнопку, хотя.
Примечание: Browser
переменная создается следующим образом:
Browser = await Puppeteer.LaunchAsync(new LaunchOptions
{
Headless = true,
ExecutablePath = Environment.GetEnvironmentVariable("CHROME_PATH"),
});