无法从剧作家的下拉选择中选择选项?



我正在尝试填写在线帐户创建表单。但是有一个下拉选项不是一个普通的选择元素。请帮助抱歉,如果它很容易,我新的c#。

public static async Task Main()
{
using var playwright = await Playwright.CreateAsync();
var chromium = playwright.Chromium;
var browser = await chromium.LaunchAsync(new BrowserTypeLaunchOptions {Headless = false}); 

Console.WriteLine(browser.IsConnected);
var page = await browser.NewPageAsync();
await page.GotoAsync("https://www.slamjam.com/en_SG/login?action=register");
await page.SelectOptionAsync("xpath=/html/body/div[1]/main/div/div/div/div/form/div[1]/span/span[1]/span", new SelectOptionValue { Label = "Mr." });
await page.FillAsync("id=registration-form-fname", "belinda");
await page.FillAsync("id=registration-form-lname", "Yeo");
await page.FillAsync("id=registration-form-birthday", "17/12/1990");
await page.FillAsync("id=registration-form-email", "email");
await page.FillAsync("id=registration-form-email-confirm", "email");
await page.FillAsync("id=registration-form-password", "PW");
await page.FillAsync("id=registration-form-password-confirm", "PW");
await page.CheckAsync("xpath=/ html / body / div[1] / main / div / div / div / div / form / div[9] / label");
await page.CheckAsync("xpath=/html/body/div[1]/main/div/div/div/div/form/div[11]/label");
await page.ClickAsync("id=validationCaptchaRegistration");
}

如果你看到我尝试使用剧作家的选择选项功能,但无济于事。

网址:https://www.slamjam.com/en_SG/login?action=register

根据Max的评论,问题是select元素实际上不是一个正常的HTMLselect元素。这只是一个span,显示下面的选项列表时,点击。

你可以这样做:

await page.ClickAsync("id=select2-registration-form-title-container");
await page.ClickAsync("li:has-text('Mr.'):visible");

只在你确信id不会改变的情况下使用。通常,最好使用对用户可见的属性,因为它们不太可能改变。

最新更新