在上一節我們已經了解到如何定位到元素,那么接下來就可以與元素進行交互了。
下面的例子都是以百度首頁作為測試頁面
輸入文本
FillAsync
方法用于模擬用戶選中元素并輸入文本,這會觸發元素的 input 事件。該方法只適合<input>、<textarea>
等可輸入的元素。
例如,下面的代碼在搜索框中輸入文本:
await?page.Locator("id=kw").FillAsync("MyIO?Hello?Playwright");
點擊鼠標
ClickAsync
方法用于模擬用戶點擊元素,同時會將元素滾動到瀏覽器當前可視范圍內。
例如,點擊搜索按鈕:
await?page.Locator("id=su").ClickAsync();
懸停鼠標
HoverAsync
方法用于模擬用戶將鼠標懸停在元素上,同時會將元素滾動到瀏覽器當前可視范圍內。
例如,懸停鼠標在“設置”鏈接上彈出菜單:
await?page.Locator("//*[@id=\"u\"]/a[2]").HoverAsync();
選中單選按鈕
CheckAsync
方法用于選中和取消選中復選框或單選按鈕。
例如,在“搜索設置”窗口將“搜索歷史記錄”設為顯示
:
await?page.Locator("id=sh_1").CheckAsync();
最后整體交互效果如下圖:
var?playwright?=?await?Playwright.CreateAsync();
var?browser?=?await?playwright.Chromium.LaunchAsync(new?BrowserTypeLaunchOptions?{?Headless?=?false,?SlowMo?=?1000,?Channel="chrome",?ChromiumSandbox=true??});var?page?=?await?browser.NewPageAsync();
await?page.GotoAsync("https://www.baidu.com");await?page.Locator("id=kw").FillAsync(Guid.NewGuid().ToString());await?page.Locator("id=su").ClickAsync();await?Task.Delay(2000);await?page.Locator("//*[@id=\"u\"]/a[2]").HoverAsync();await?page.Locator("//*[@id=\"u\"]/div/a[1]/span").ClickAsync();
await?page.Locator("id=sh_1").CheckAsync();
添加微信號【MyIO666】,邀你加入技術交流群