Best Playwright-dotnet code snippet using Microsoft.Playwright.Core.Keyboard.TypeAsync
BindTest.cs
Source:BindTest.cs
...39 Assert.Equal(string.Empty, await GetInputValue("#textbox-initially-blank"));40 Assert.Equal(string.Empty, await TestPage.GetInnerTextAsync("#textbox-initially-blank-value"));41 Assert.Equal(string.Empty, await GetInputValue("#textbox-initially-blank-mirror"));42 // Modify target; verify value is updated and that textboxes linked to the same data are updated43 await target.TypeAsync("Changed value");44 // Doesn't update until change event45 Assert.Equal(string.Empty, await TestPage.GetInnerTextAsync("#textbox-initially-blank-value"));46 Assert.Equal(string.Empty, await GetInputValue("#textbox-initially-blank-mirror"));47 await target.PressAsync("Tab");48 Assert.Equal("Changed value", await TestPage.GetInnerTextAsync("#textbox-initially-blank-value"));49 Assert.Equal("Changed value", await GetInputValue("#textbox-initially-blank-mirror"));50 // Remove the value altogether51 await TestPage.ClickAsync("#textbox-initially-blank-setnull");52 Assert.Equal(string.Empty, await GetInputValue("#textbox-initially-blank"));53 Assert.Equal(string.Empty, await TestPage.GetInnerTextAsync("#textbox-initially-blank-value"));54 Assert.Equal(string.Empty, await GetInputValue("#textbox-initially-blank-mirror"));55 }56 //[Fact]57 //public void CanBindTextbox_InitiallyPopulated()...
BotCore.cs
Source:BotCore.cs
...332 if (usernameBox.CountAsync().GetAwaiter().GetResult() > 0)333 {334 Click(ref usernameBox);335 Thread.Sleep(1000);336 usernameBox.TypeAsync(itm.LoginInfo.Username).GetAwaiter().GetResult();337 var passwordBox =338 page.Locator(339 "xpath=/html/body/div[3]/div/div/div/div/div/div[1]/div/div/div[3]/form/div/div[2]/div/div[1]/div[2]/div[1]/input");340 if (passwordBox.CountAsync().GetAwaiter().GetResult() > 0)341 {342 Click(ref passwordBox);343 Thread.Sleep(1000);344 passwordBox.TypeAsync(itm.LoginInfo.Password).GetAwaiter().GetResult();345 Thread.Sleep(1000);346 var login = page.Locator(347 "xpath=/html/body/div[3]/div/div/div/div/div/div[1]/div/div/div[3]/form/div/div[3]/button/div/div");348 Thread.Sleep(1000);349 if (login.CountAsync().GetAwaiter().GetResult() > 0)350 Click(ref login);351 }352 }353 }354 }355 catch (Exception ex)356 {357 LogMessage?.Invoke(new Exception($"Login failed: {ex.Message}"));358 }359 while (true)360 {361 Thread.Sleep(1000);362 var cookie = page.Context.CookiesAsync().GetAwaiter().GetResult()363 .Any(x => x.Name == "auth-token");364 if (cookie)365 {366 StoreCookie(new Tuple<string, List<BrowserContextCookiesResult>>(itm.LoginInfo.Username,367 new List<BrowserContextCookiesResult>(page.Context.CookiesAsync().GetAwaiter()368 .GetResult().ToArray())));369 break;370 }371 }372 }373 while (true)374 {375 try376 {377 if (_firstPage)378 {379 firstPage = true;380 _firstPage = false;381 }382 if (firstPage)383 {384 var liveViewers =385 page.Locator(386 "xpath=/html/body/div[1]/div/div[2]/div[1]/main/div[2]/div[3]/div/div/div[1]/div[1]/div[2]/div/div[1]/div/div/div/div[2]/div[2]/div[2]/div/div/div[1]/div[1]/div/p/span");387 if (liveViewers.CountAsync().GetAwaiter().GetResult() > 0)388 {389 LiveViewer.Invoke(liveViewers.InnerTextAsync().GetAwaiter().GetResult());390 Thread.Sleep(5000);391 }392 }393 }394 catch (Exception)395 {396 LiveViewer.Invoke("N/A");397 }398 Thread.Sleep(1000);399 try400 {401 var connectionError =402 page.Locator(403 "xpath=/html/body/div[1]/div/div[2]/div[1]/main/div[2]/div[3]/div/div/div[2]/div/div[2]/div/div/div/div/div[7]/div/div[3]/button/div/div[2]");404 if (connectionError.CountAsync().GetAwaiter().GetResult() > 0)405 connectionError.ClickAsync().GetAwaiter().GetResult();406 }407 catch (Exception)408 {409 //ignored410 }411 412 try413 {414 if (!matureClicked && matureCheckCount < 5)415 try416 {417 var mature =418 page.Locator(419 "xpath=/html/body/div[1]/div/div[2]/div[1]/main/div[2]/div[3]/div/div/div[2]/div/div[2]/div/div/div/div/div[5]/div/div[3]/button/div/div");420 if (mature.CountAsync().GetAwaiter().GetResult() > 0)421 {422 Click(ref mature);423 matureClicked = true;424 matureCheckCount++;425 }426 }427 catch428 {429 //ignored because there is no mature button430 }431 }432 catch (Exception)433 {434 // ignored435 }436 try437 {438 if (!cacheClicked && cacheCheckCount < 5)439 try440 {441 var cache = page.Locator(442 "xpath=/html/body/div[1]/div/div[2]/div[1]/div/div/div[3]/button/div/div/div");443 if (cache.CountAsync().GetAwaiter().GetResult() > 0)444 {445 Click(ref cache);446 cacheClicked = true;447 }448 cacheCheckCount++;449 }450 catch (Exception)451 {452 //ignored because there is no cache button453 }454 }455 catch (Exception)456 {457 // ignored458 }459 try460 {461 if (_refreshInterval != 0 &&462 DateTime.Now - startDate > TimeSpan.FromMinutes(_refreshInterval))463 {464 page.ReloadAsync().GetAwaiter().GetResult();465 startDate = DateTime.Now;466 }467 }468 catch (Exception)469 {470 //ignored471 }472 try473 {474 if (messageInterval != 0 &&475 DateTime.Now - messageStartDate > TimeSpan.FromMinutes(messageInterval) &&476 itm.LoginInfo != null)477 {478 SendMessage();479 messageStartDate = DateTime.Now;480 }481 }482 catch (Exception)483 {484 //ignored485 }486 }487 void SendMessage()488 {489 try490 {491 var chatBox = page.WaitForSelectorAsync(".chat-wysiwyg-input__editor").GetAwaiter()492 .GetResult();493 if (_chatMessages.TryTake(out var message))494 {495 chatBox?.TypeAsync(message).GetAwaiter().GetResult();496 page.Keyboard.PressAsync("Enter").GetAwaiter().GetResult();497 }498 }499 catch (Exception)500 {501 //ignored 502 }503 }504 }505 if (itm.Service == StreamService.Service.Youtube)506 {507 Thread.Sleep(3000);508 try509 {510 var play = page.Locator(511 "xpath=/html/body/ytd-app/div/ytd-page-manager/ytd-watch-flexy/div[5]/div[1]/div/div[1]/div/div/div/ytd-player/div/div/div[5]/button");512 play?.ClickAsync().GetAwaiter().GetResult();513 }514 catch (Exception)515 {516 //ignored517 }518 while (true)519 {520 try521 {522 if (_firstPage)523 {524 firstPage = true;525 _firstPage = false;526 }527 if (firstPage)528 {529 var liveViewers = page.Locator(530 "xpath=/html/body/ytd-app/div/ytd-page-manager/ytd-watch-flexy/div[5]/div[1]/div/div[6]/div[2]/ytd-video-primary-info-renderer/div/div/div[1]/div[1]/ytd-video-view-count-renderer/span[1]");531 if (liveViewers.CountAsync().GetAwaiter().GetResult() > 0)532 {533 LiveViewer.Invoke(534 liveViewers.InnerTextAsync().GetAwaiter().GetResult().Split(' ')[0]);535 Thread.Sleep(5000);536 }537 }538 }539 catch (Exception)540 {541 LiveViewer.Invoke("N/A");542 }543 try544 {545 if (_refreshInterval != 0 &&546 DateTime.Now - startDate > TimeSpan.FromMinutes(_refreshInterval))547 {548 page.ReloadAsync().GetAwaiter().GetResult();549 startDate = DateTime.Now;550 }551 }552 catch553 {554 //ignored555 }556 }557 }558 if (itm.Service == StreamService.Service.DLive)559 {560 Thread.Sleep(3000);561 var isPlaying = false;562 while (true)563 {564 try565 {566 if (_firstPage)567 {568 firstPage = true;569 _firstPage = false;570 }571 if (firstPage)572 {573 try574 {575 var liveViewers =576 page.Locator(577 "xpath=/html/body/div/div[1]/div[20]/div[2]/div/div[2]/div/div/div/div[1]/div/div[1]/div[3]/div/div[1]/div/div[2]/div[2]");578 if (liveViewers.CountAsync().GetAwaiter().GetResult() > 0)579 {580 LiveViewer.Invoke(liveViewers.InnerTextAsync().GetAwaiter().GetResult()581 .Split(" ")[0]);582 Thread.Sleep(5000);583 }584 }585 catch (Exception)586 {587 //ignored588 }589 try590 {591 var liveViewers =592 page.Locator(593 "xpath=/html/body/div/div[1]/div[18]/div[2]/div/div/div/div/div/div/div/div/div[3]/div/div[3]/div/div/div[1]/div/div[1]/div[2]/div/div[1]/span");594 if (liveViewers.CountAsync().GetAwaiter().GetResult() > 0)595 {596 LiveViewer.Invoke(liveViewers.InnerTextAsync().GetAwaiter().GetResult());597 Thread.Sleep(5000);598 }599 }600 catch (Exception)601 {602 //ignored603 }604 }605 if (!isPlaying)606 {607 var play = page.Locator(608 "xpath=/html/body/div/div[1]/div[14]/div[2]/div/div[2]/div/div/div/div/div/div/div[1]/div/div/div/div/div[4]/div[2]/button/svg");609 if (play.CountAsync().GetAwaiter().GetResult() > 0)610 {611 Click(ref play);612 isPlaying = true;613 }614 }615 Thread.Sleep(1000);616 }617 catch (Exception)618 {619 //ignored620 }621 try622 {623 if (_refreshInterval != 0 &&624 DateTime.Now - startDate > TimeSpan.FromMinutes(_refreshInterval))625 {626 page.ReloadAsync().GetAwaiter().GetResult();627 isPlaying = false;628 startDate = DateTime.Now;629 }630 }631 catch (Exception)632 {633 //ignored634 }635 }636 }637 if (itm.Service == StreamService.Service.NimoTv)638 {639 Thread.Sleep(3000);640 var isPlaying = false;641 if (itm.LoginInfo != null)642 {643 Thread.Sleep(1000);644 var allCookies = GetCookie(itm.LoginInfo.Username);645 if (allCookies != null)646 foreach (var cookie in allCookies)647 {648 Cookie[] cookies =649 {650 new()651 {652 Domain = cookie.Domain, Expires = cookie.Expiry, Name = cookie.Name,653 Path = cookie.Path, Secure = cookie.Secure, Url = cookie.Path,654 HttpOnly = cookie.HttpOnly, Value = cookie.Value655 }656 };657 page.Context.AddCookiesAsync(cookies);658 }659 try660 {661 var loginButton =662 page.Locator("xpath=/html/body/div[2]/div[1]/div/div[2]/div/div[2]/button");663 if (loginButton.CountAsync().GetAwaiter().GetResult() > 0)664 {665 Click(ref loginButton);666 Thread.Sleep(1000);667 var usernameBox =668 page.Locator(669 "xpath=/html/body/div[6]/div/div[2]/div/div[2]/div/div/div[3]/div[1]/div[2]/input");670 if (usernameBox.CountAsync().GetAwaiter().GetResult() > 0)671 {672 Click(ref usernameBox);673 Thread.Sleep(1000);674 usernameBox.TypeAsync(itm.LoginInfo.Username.Split('/')[1]).GetAwaiter()675 .GetResult();676 var countryCodeArrow =677 page.Locator(678 "xpath=/html/body/div[6]/div/div[2]/div/div[2]/div/div/div[3]/div[1]/div[2]/div[1]");679 if (countryCodeArrow.CountAsync().GetAwaiter().GetResult() > 0)680 {681 Click(ref countryCodeArrow);682 Thread.Sleep(1000);683 var searchCountryCode =684 page.Locator(685 "xpath=/html/body/div[6]/div/div[2]/div/div[4]/div/div/div/div[1]/input");686 if (searchCountryCode.CountAsync().GetAwaiter().GetResult() > 0)687 {688 searchCountryCode.TypeAsync(itm.LoginInfo.Username.Split('/')[0]689 .Replace("+", string.Empty)).GetAwaiter().GetResult();690 Thread.Sleep(1000);691 var firstElement =692 page.Locator(693 "xpath=/html/body/div[6]/div/div[2]/div/div[4]/div/div/div/div[2]/div[1]/div[2]");694 if (firstElement.CountAsync().GetAwaiter().GetResult() > 0)695 Click(ref firstElement);696 }697 }698 var passwordBox =699 page.Locator(700 "xpath=/html/body/div[6]/div/div[2]/div/div[2]/div/div/div[3]/div[1]/div[3]/input");701 if (passwordBox.CountAsync().GetAwaiter().GetResult() > 0)702 {703 Click(ref passwordBox);704 Thread.Sleep(1000);705 passwordBox.TypeAsync(itm.LoginInfo.Password).GetAwaiter().GetResult();706 Thread.Sleep(1000);707 var login = page.Locator(708 "xpath=/html/body/div[6]/div/div[2]/div/div[2]/div/div/div[3]/div[1]/button");709 Thread.Sleep(1000);710 if (login.CountAsync().GetAwaiter().GetResult() > 0)711 Click(ref login);712 }713 }714 }715 }716 catch (Exception ex)717 {718 LogMessage?.Invoke(new Exception($"Login failed: {ex.Message}"));719 }720 while (true)721 {722 Thread.Sleep(1000);723 var cookie = page.Context.CookiesAsync().GetAwaiter().GetResult()724 .Any(x => x.Name == "userName");725 if (cookie)726 {727 StoreCookie(new Tuple<string, List<BrowserContextCookiesResult>>(itm.LoginInfo.Username,728 new List<BrowserContextCookiesResult>(page.Context.CookiesAsync().GetAwaiter()729 .GetResult().ToArray())));730 break;731 }732 }733 }734 while (true)735 {736 try737 {738 if (_firstPage)739 {740 firstPage = true;741 _firstPage = false;742 }743 if (firstPage)744 {745 var liveViewers =746 page.Locator(747 "xpath=/html/body/div[2]/div[2]/div[2]/div[1]/div/div/div[2]/div[2]/div[1]/div[1]/div/div[2]/div[3]/span");748 if (liveViewers.CountAsync().GetAwaiter().GetResult() > 0)749 {750 LiveViewer.Invoke(liveViewers.InnerTextAsync().GetAwaiter().GetResult());751 Thread.Sleep(5000);752 }753 }754 }755 catch (Exception)756 {757 LiveViewer.Invoke("N/A");758 }759 try760 {761 if (!isPlaying)762 {763 var play = page.Locator(764 "xpath=/html/body/div[2]/div[2]/div[2]/div[1]/div/div/div[2]/div[2]/div[1]/div[2]/div[1]/div[2]/div/span");765 if (play.CountAsync().GetAwaiter().GetResult() > 0)766 {767 Click(ref play);768 isPlaying = true;769 }770 }771 }772 catch (Exception)773 {774 //ignored775 }776 try777 {778 if (_refreshInterval != 0 &&779 DateTime.Now - startDate > TimeSpan.FromMinutes(_refreshInterval))780 {781 page.ReloadAsync().GetAwaiter().GetResult();782 isPlaying = false;783 startDate = DateTime.Now;784 }785 }786 catch (Exception)787 {788 //ignored789 }790 try791 {792 if (messageInterval != 0 &&793 DateTime.Now - messageStartDate > TimeSpan.FromMinutes(messageInterval) &&794 itm.LoginInfo != null)795 {796 SendMessage();797 messageStartDate = DateTime.Now;798 }799 }800 catch (Exception)801 {802 //ignored803 }804 void SendMessage()805 {806 try807 {808 var chatBox = page.WaitForSelectorAsync(".nimo-room__chatroom__chat-box__input")809 .GetAwaiter().GetResult();810 if (chatBox != null && _chatMessages.TryTake(out var message))811 {812 chatBox.TypeAsync(message).GetAwaiter().GetResult();813 page.Keyboard.PressAsync("Enter");814 }815 }816 catch (Exception)817 {818 //ignored 819 }820 }821 Thread.Sleep(1000);822 }823 }824 if (itm.Service == StreamService.Service.Twitter)825 {826 Thread.Sleep(3000);827 while (true)828 {829 try830 {831 if (_firstPage)832 {833 firstPage = true;834 _firstPage = false;835 }836 if (firstPage)837 {838 var liveViewers =839 page.Locator(840 "xpath=/html/body/div[2]/div[2]/div[2]/div[1]/div/div/div[2]/div[2]/div[1]/div[1]/div/div[2]/div[3]/span");841 if (liveViewers.CountAsync().GetAwaiter().GetResult() > 0)842 {843 LiveViewer.Invoke(liveViewers.InnerTextAsync().GetAwaiter().GetResult());844 Thread.Sleep(5000);845 }846 }847 }848 catch (Exception)849 {850 LiveViewer.Invoke("N/A");851 }852 try853 {854 if (_refreshInterval != 0 &&855 DateTime.Now - startDate > TimeSpan.FromMinutes(_refreshInterval))856 {857 page.ReloadAsync().GetAwaiter().GetResult();858 startDate = DateTime.Now;859 }860 }861 catch (Exception)862 {863 //ignored864 }865 Thread.Sleep(1000);866 }867 }868 if (itm.Service == StreamService.Service.Facebook)869 {870 Thread.Sleep(3000);871 if (itm.LoginInfo != null)872 {873 Thread.Sleep(1000);874 var allCookies = GetCookie(itm.LoginInfo.Username);875 if (allCookies != null)876 foreach (var cookie in allCookies)877 {878 Cookie[] cookies =879 {880 new()881 {882 Domain = cookie.Domain, Expires = cookie.Expiry, Name = cookie.Name,883 Path = cookie.Path, Secure = cookie.Secure, Url = cookie.Path,884 HttpOnly = cookie.HttpOnly, Value = cookie.Value885 }886 };887 page.Context.AddCookiesAsync(cookies);888 }889 try890 {891 var usernameBox =892 page.Locator(893 "xpath=/html/body/div[1]/div/div[1]/div/div[2]/div[2]/div[2]/div/form/div[2]/div[1]/label/input");894 if (usernameBox.CountAsync().GetAwaiter().GetResult() > 0)895 {896 Click(ref usernameBox);897 Thread.Sleep(1000);898 usernameBox.TypeAsync(itm.LoginInfo.Username).GetAwaiter().GetResult();899 var passwordBox =900 page.Locator(901 "xpath=/html/body/div[1]/div/div[1]/div/div[2]/div[2]/div[2]/div/form/div[2]/div[2]/label/input");902 if (passwordBox.CountAsync().GetAwaiter().GetResult() > 0)903 {904 Click(ref passwordBox);905 Thread.Sleep(1000);906 passwordBox.TypeAsync(itm.LoginInfo.Password).GetAwaiter().GetResult();907 Thread.Sleep(1000);908 var login = page.Locator(909 "xpath=/html/body/div[1]/div/div[1]/div/div[2]/div[2]/div[2]/div/form/div[2]/div[3]/div/div/div[1]/div/span/span");910 Thread.Sleep(1000);911 if (login.CountAsync().GetAwaiter().GetResult() > 0)912 Click(ref login);913 }914 }915 }916 catch (Exception ex)917 {918 LogMessage?.Invoke(new Exception($"Login failed: {ex.Message}"));919 }920 Thread.Sleep(3000);921 page.ReloadAsync().GetAwaiter().GetResult();922 while (true)923 {924 Thread.Sleep(1000);925 var cookie = page.Context.CookiesAsync().GetAwaiter().GetResult()926 .Any(x => x.Name == "c_user");927 if (cookie)928 {929 StoreCookie(new Tuple<string, List<BrowserContextCookiesResult>>(itm.LoginInfo.Username,930 new List<BrowserContextCookiesResult>(page.Context.CookiesAsync().GetAwaiter()931 .GetResult().ToArray())));932 break;933 }934 }935 }936 while (true)937 {938 try939 {940 if (_firstPage)941 {942 firstPage = true;943 _firstPage = false;944 }945 if (firstPage)946 {947 var liveViewers =948 page.Locator(949 "xpath=/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[2]/div[1]/div/div/div/div[1]/div[1]/div/div/div/div[2]/div/div[5]/div[2]/span[2]");950 if (liveViewers.CountAsync().GetAwaiter().GetResult() > 0)951 {952 LiveViewer.Invoke(liveViewers.InnerTextAsync().GetAwaiter().GetResult());953 Thread.Sleep(5000);954 }955 }956 }957 catch (Exception)958 {959 //ignored960 }961 try962 {963 if (_refreshInterval != 0 &&964 DateTime.Now - startDate > TimeSpan.FromMinutes(_refreshInterval))965 {966 page.ReloadAsync().GetAwaiter().GetResult();967 startDate = DateTime.Now;968 }969 }970 catch (Exception)971 {972 //ignored973 }974 }975 }976 if (itm.Service == StreamService.Service.TrovoLive)977 {978 Thread.Sleep(5000);979 if (!Headless && !_useLowCpuRam)980 try981 {982 page.EvaluateAsync("window.localStorage.setItem('live/userClarityLevel', '" +983 itm.PreferredQuality + "');");984 page.ReloadAsync().GetAwaiter().GetResult();985 }986 catch (Exception)987 {988 //ignored989 }990 if (itm.LoginInfo != null)991 {992 Thread.Sleep(1000);993 var allCookies = GetCookie(itm.LoginInfo.Username);994 if (allCookies != null)995 foreach (var cookie in allCookies)996 {997 Cookie[] cookies =998 {999 new()1000 {1001 Domain = cookie.Domain, Expires = cookie.Expiry, Name = cookie.Name,1002 Path = cookie.Path, Secure = cookie.Secure, Url = cookie.Path,1003 HttpOnly = cookie.HttpOnly, Value = cookie.Value1004 }1005 };1006 page.Context.AddCookiesAsync(cookies);1007 }1008 try1009 {1010 var loginSignUpButton =1011 page.Locator("xpath=/html/body/div[1]/div/div/nav/div[3]/div[3]/button");1012 if (loginSignUpButton.CountAsync().GetAwaiter().GetResult() > 0)1013 {1014 Click(ref loginSignUpButton);1015 Thread.Sleep(4000);1016 ILocator usernameBox;1017 try1018 {1019 usernameBox =1020 page.Locator(1021 "xpath=/html/body/div[4]/div/div[2]/div[3]/div[1]/div[1]/div/input");1022 }1023 catch1024 {1025 usernameBox =1026 page.Locator(1027 "xpath=/html/body/div[4]/div/div[2]/div[3]/div[1]/div[1]/div[1]/input");1028 }1029 if (usernameBox.CountAsync().GetAwaiter().GetResult() > 0)1030 {1031 Click(ref usernameBox);1032 Thread.Sleep(1000);1033 usernameBox.TypeAsync(itm.LoginInfo.Username).GetAwaiter().GetResult();1034 Thread.Sleep(1000);1035 var passwordBox =1036 page.Locator(1037 "xpath=/html/body/div[4]/div/div[2]/div[3]/div[1]/div[3]/div/input");1038 if (passwordBox.CountAsync().GetAwaiter().GetResult() > 0)1039 {1040 passwordBox.TypeAsync(itm.LoginInfo.Password).GetAwaiter().GetResult();1041 var login = page.Locator(1042 "xpath=/html/body/div[4]/div/div[2]/div[3]/div[1]/button");1043 Thread.Sleep(1000);1044 if (login.CountAsync().GetAwaiter().GetResult() > 0)1045 Click(ref login);1046 }1047 }1048 }1049 }1050 catch (Exception ex)1051 {1052 LogMessage?.Invoke(new Exception($"Login failed: {ex.Message}"));1053 }1054 Thread.Sleep(3000);1055 page.ReloadAsync().GetAwaiter().GetResult();1056 while (true)1057 {1058 Thread.Sleep(1000);1059 var cookie = page.Context.CookiesAsync().GetAwaiter().GetResult().Any(x => x.Name == "uid");1060 if (cookie)1061 {1062 StoreCookie(new Tuple<string, List<BrowserContextCookiesResult>>(itm.LoginInfo.Username,1063 new List<BrowserContextCookiesResult>(page.Context.CookiesAsync().GetAwaiter()1064 .GetResult().ToArray())));1065 break;1066 }1067 }1068 }1069 var matureClicked = false;1070 var chatRulesClicked = false;1071 var matureCheckCount = 0;1072 while (true)1073 {1074 try1075 {1076 if (_firstPage)1077 {1078 firstPage = true;1079 _firstPage = false;1080 }1081 if (firstPage)1082 {1083 var liveViewers =1084 page.Locator(1085 "xpath=/html/body/div[1]/div/div[1]/div/div[3]/div/div/div[1]/div[2]/div[1]/div/div/div/div[1]/div[1]/div/div/div/div[2]/div/div[5]/div[2]/span[2]");1086 if (liveViewers.CountAsync().GetAwaiter().GetResult() > 0)1087 {1088 LiveViewer.Invoke(liveViewers.InnerTextAsync().GetAwaiter().GetResult());1089 Thread.Sleep(5000);1090 }1091 }1092 }1093 catch (Exception)1094 {1095 //ignored1096 }1097 try1098 {1099 if (_refreshInterval != 0 &&1100 DateTime.Now - startDate > TimeSpan.FromMinutes(_refreshInterval))1101 {1102 page.ReloadAsync().GetAwaiter().GetResult();1103 startDate = DateTime.Now;1104 }1105 }1106 catch (Exception)1107 {1108 //ignored1109 }1110 try1111 {1112 if (!matureClicked && matureCheckCount < 5)1113 try1114 {1115 ILocator mature = null;1116 try1117 {1118 mature = page.Locator(1119 "xpath=/html/body/div[1]/div/div/div/div[2]/div/div/div[1]/div[1]/div[1]/div/div[4]/div[3]/section/div/button[2]");1120 }1121 catch1122 {1123 //ignored1124 }1125 if (mature.CountAsync().GetAwaiter().GetResult() == 0)1126 mature = page.Locator(1127 "xpath=/html/body/div[1]/div/div/div/div[2]/div/div/div[1]/div[1]/div[1]/div/div[2]/div[3]/section/div/button[2]");1128 if (mature.CountAsync().GetAwaiter().GetResult() > 0)1129 {1130 Click(ref mature);1131 matureClicked = true;1132 }1133 matureCheckCount++;1134 }1135 catch1136 {1137 //ignored because there is no mature button1138 }1139 }1140 catch (Exception)1141 {1142 // ignored1143 }1144 if (!chatRulesClicked)1145 try1146 {1147 var chatRules = page.Locator(1148 "xpath=/html/body/div[1]/div/div/div/div[2]/div/section/div[3]/div/section/section/div/button");1149 if (chatRules.CountAsync().GetAwaiter().GetResult() > 0)1150 {1151 chatRules.ClickAsync().GetAwaiter().GetResult();1152 chatRulesClicked = true;1153 }1154 }1155 catch (Exception)1156 {1157 //ignored1158 }1159 try1160 {1161 if (messageInterval != 0 &&1162 DateTime.Now - messageStartDate > TimeSpan.FromMinutes(messageInterval) &&1163 itm.LoginInfo != null)1164 {1165 SendMessage();1166 messageStartDate = DateTime.Now;1167 }1168 }1169 catch (Exception)1170 {1171 //ignored1172 }1173 void SendMessage()1174 {1175 try1176 {1177 var chatBox =1178 page.Locator(1179 "xpath=/html/body/div[1]/div/div/div/div[2]/div/section/div[3]/div/section/div[1]/div[1]/div[1]");1180 if (chatBox.CountAsync().GetAwaiter().GetResult() > 0 &&1181 _chatMessages.TryTake(out var message))1182 {1183 chatBox.TypeAsync(message).GetAwaiter().GetResult();1184 page.Keyboard.PressAsync("Enter");1185 }1186 }1187 catch (Exception)1188 {1189 //ignored 1190 }1191 }1192 Thread.Sleep(1000);1193 }1194 }1195 if (itm.Service == StreamService.Service.BigoLive)1196 {1197 Thread.Sleep(2000);1198 page.ReloadAsync().GetAwaiter().GetResult();1199 1200 /*if (itm.LoginInfo != null)1201 {1202 Thread.Sleep(1000);1203 var allCookies = GetCookie(itm.LoginInfo.Username);1204 if (allCookies != null)1205 foreach (var cookie in allCookies)1206 {1207 Cookie[] cookies =1208 {1209 new()1210 {1211 Domain = cookie.Domain, Expires = cookie.Expiry, Name = cookie.Name,1212 Path = cookie.Path, Secure = cookie.Secure, Url = cookie.Path,1213 HttpOnly = cookie.HttpOnly, Value = cookie.Value1214 }1215 };1216 page.Context.AddCookiesAsync(cookies);1217 }1218 try1219 {1220 var loginSignUpButton =1221 page.Locator("xpath=/html/body/div/div/div/header/div[2]/div/button");1222 if (loginSignUpButton.CountAsync().GetAwaiter().GetResult() > 0)1223 {1224 Click(ref loginSignUpButton);1225 1226 var withCredentialsButton =1227 page.Locator("xpath=/html/body/div/div[2]/div/header/div[3]/div/div[2]");1228 if (withCredentialsButton.CountAsync().GetAwaiter().GetResult() > 0)1229 {1230 Click(ref withCredentialsButton);1231 Thread.Sleep(4000);1232 ILocator usernameBox;1233 try1234 {1235 usernameBox =1236 page.Locator(1237 "xpath=/html/body/div[4]/div/div[2]/div[3]/div[1]/div[1]/div/input");1238 }1239 catch1240 {1241 usernameBox =1242 page.Locator(1243 "xpath=/html/body/div[4]/div/div[2]/div[3]/div[1]/div[1]/div[1]/input");1244 }1245 if (usernameBox.CountAsync().GetAwaiter().GetResult() > 0)1246 {1247 Click(ref usernameBox);1248 Thread.Sleep(1000);1249 usernameBox.TypeAsync(itm.LoginInfo.Username).GetAwaiter().GetResult();1250 Thread.Sleep(1000);1251 var passwordBox =1252 page.Locator(1253 "xpath=/html/body/div[4]/div/div[2]/div[3]/div[1]/div[3]/div/input");1254 if (passwordBox.CountAsync().GetAwaiter().GetResult() > 0)1255 {1256 passwordBox.TypeAsync(itm.LoginInfo.Password).GetAwaiter().GetResult();1257 var login = page.Locator(1258 "xpath=/html/body/div[4]/div/div[2]/div[3]/div[1]/button");1259 Thread.Sleep(1000);1260 if (login.CountAsync().GetAwaiter().GetResult() > 0)1261 Click(ref login);1262 }1263 }1264 }1265 }1266 }1267 catch (Exception ex)1268 {1269 LogMessage?.Invoke(new Exception($"Login failed: {ex.Message}"));1270 }...
Page.cs
Source:Page.cs
...381 public Task SetInputFilesAsync(string selector, FilePayload files, PageSetInputFilesOptions options = default)382 => MainFrame.SetInputFilesAsync(selector, files, Map(options));383 public Task SetInputFilesAsync(string selector, IEnumerable<FilePayload> files, PageSetInputFilesOptions options = default)384 => MainFrame.SetInputFilesAsync(selector, files, Map(options));385 public Task TypeAsync(string selector, string text, PageTypeOptions options = default)386 => MainFrame.TypeAsync(selector, text, new()387 {388 Delay = options?.Delay,389 NoWaitAfter = options?.NoWaitAfter,390 Timeout = options?.Timeout,391 Strict = options?.Strict,392 });393 public Task FocusAsync(string selector, PageFocusOptions options = default)394 => MainFrame.FocusAsync(selector, new()395 {396 Timeout = options?.Timeout,397 Strict = options?.Strict,398 });399 public Task HoverAsync(string selector, PageHoverOptions options = default)400 => MainFrame.HoverAsync(...
FrameChannel.cs
Source:FrameChannel.cs
...444 ["strict"] = strict,445 };446 return (await Connection.SendMessageToServerAsync(Guid, "innerHTML", args).ConfigureAwait(false))?.GetProperty("value").ToString();447 }448 internal Task TypeAsync(string selector, string text, float? delay, float? timeout, bool? noWaitAfter, bool? strict)449 {450 var args = new Dictionary<string, object>451 {452 ["selector"] = selector,453 ["text"] = text,454 ["delay"] = delay,455 ["noWaitAfter"] = noWaitAfter,456 ["timeout"] = timeout,457 ["strict"] = strict,458 };459 return Connection.SendMessageToServerAsync(Guid, "type", args);460 }461 internal async Task<string> ContentAsync()462 => (await Connection.SendMessageToServerAsync(...
PageChannel.cs
Source:PageChannel.cs
...242 new Dictionary<string, object>243 {244 ["key"] = key,245 });246 internal Task TypeAsync(string text, float? delay)247 => Connection.SendMessageToServerAsync(248 Guid,249 "keyboardType",250 new Dictionary<string, object>251 {252 ["text"] = text,253 ["delay"] = delay,254 });255 internal Task PressAsync(string key, float? delay)256 => Connection.SendMessageToServerAsync(257 Guid,258 "keyboardPress",259 new Dictionary<string, object>260 {...
ElementHandleChannel.cs
Source:ElementHandleChannel.cs
...339 ["noWaitAfter"] = noWaitAfter,340 };341 return Connection.SendMessageToServerAsync<ElementHandleChannel>(Guid, "uncheck", args);342 }343 internal Task TypeAsync(string text, float? delay, float? timeout, bool? noWaitAfter)344 {345 var args = new Dictionary<string, object>346 {347 ["text"] = text,348 ["delay"] = delay,349 ["timeout"] = timeout,350 ["noWaitAfter"] = noWaitAfter,351 };352 return Connection.SendMessageToServerAsync(Guid, "type", args);353 }354 internal Task PressAsync(string key, float? delay, float? timeout, bool? noWaitAfter)355 {356 var args = new Dictionary<string, object>357 {...
SearchTests.cs
Source:SearchTests.cs
...49 {50 await element.ClickAsync();51 }52 // Search for the desired term53 await page.TypeAsync("[name='q']", ".net core");54 await page.Keyboard.PressAsync("Enter");55 // Wait for the results to load56 await page.WaitForSelectorAsync("id=appbar");57 // Click through to the desired result58 await page.ClickAsync("a:has-text(\".NET\")");59 });60 }61}...
Keyboard.cs
Source:Keyboard.cs
...35 public Task DownAsync(string key) => _channel.KeyboardDownAsync(key);36 public Task UpAsync(string key) => _channel.KeyboardUpAsync(key);37 public Task PressAsync(string key, KeyboardPressOptions options = default)38 => _channel.PressAsync(key, options?.Delay);39 public Task TypeAsync(string text, KeyboardTypeOptions options = default)40 => _channel.TypeAsync(text, options?.Delay);41 public Task InsertTextAsync(string text) => _channel.InsertTextAsync(text);42 }43}...
TypeAsync
Using AI Code Generation
1var playwright = await Playwright.CreateAsync();2var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions3{4});5var context = await browser.NewContextAsync();6var page = await context.NewPageAsync();7await page.Keyboard.TypeAsync("Hello World!");8await page.ScreenshotAsync("example.png");9await browser.CloseAsync();10var playwright = await Playwright.CreateAsync();11var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions12{13});14var context = await browser.NewContextAsync();15var page = await context.NewPageAsync();16await page.Keyboard.TypeAsync("Hello World!");17await page.ScreenshotAsync("example.png");18await browser.CloseAsync();19var playwright = await Playwright.CreateAsync();20var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions21{22});23var context = await browser.NewContextAsync();24var page = await context.NewPageAsync();25await page.Keyboard.TypeAsync("Hello World!");26await page.ScreenshotAsync("example.png");27await browser.CloseAsync();28var playwright = await Playwright.CreateAsync();29var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions30{31});32var context = await browser.NewContextAsync();33var page = await context.NewPageAsync();34await page.Keyboard.TypeAsync("Hello World!");35await page.ScreenshotAsync("example.png");36await browser.CloseAsync();37var playwright = await Playwright.CreateAsync();38var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions39{40});41var context = await browser.NewContextAsync();42var page = await context.NewPageAsync();
TypeAsync
Using AI Code Generation
1using System;2using System.Threading.Tasks;3using Microsoft.Playwright;4{5 {6 static async Task Main(string[] args)7 {8 using var playwright = await Playwright.CreateAsync();9 await using var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions10 {11 });12 var page = await browser.NewPageAsync();13 await page.TypeAsync("input[title='Search']", "Hello World");14 }15 }16}17using System;18using System.Threading.Tasks;19using Microsoft.Playwright;20{21 {22 static async Task Main(string[] args)23 {24 using var playwright = await Playwright.CreateAsync();25 await using var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions26 {27 });28 var page = await browser.NewPageAsync();29 await page.TypeAsync("input[title='Search']", "Hello World");30 await page.Keyboard.PressAsync("Enter");31 }32 }33}34using System;35using System.Threading.Tasks;36using Microsoft.Playwright;37{38 {39 static async Task Main(string[] args)40 {41 using var playwright = await Playwright.CreateAsync();42 await using var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions43 {44 });45 var page = await browser.NewPageAsync();46 await page.TypeAsync("input[title='Search']", "Hello World");47 await page.Keyboard.PressAsync("Enter");48 await page.WaitForNavigationAsync();49 }50 }51}52using System;53using System.Threading.Tasks;54using Microsoft.Playwright;55{56 {57 static async Task Main(string[] args)58 {59 using var playwright = await Playwright.CreateAsync();
TypeAsync
Using AI Code Generation
1await page.Keyboard.TypeAsync("hello world");2await page.Keyboard.TypeAsync("hello world");3await page.Keyboard.TypeAsync("hello world");4await page.Keyboard.TypeAsync("hello world");5await page.Keyboard.TypeAsync("hello world");6await page.Keyboard.TypeAsync("hello world");7await page.Keyboard.TypeAsync("hello world");8await page.Keyboard.TypeAsync("hello world");9await page.Keyboard.TypeAsync("hello world");10await page.Keyboard.TypeAsync("hello world");11await page.Keyboard.TypeAsync("hello world");12await page.Keyboard.TypeAsync("hello world");13await page.Keyboard.TypeAsync("hello world");14await page.Keyboard.TypeAsync("hello world");15await page.Keyboard.TypeAsync("hello world");16await page.Keyboard.TypeAsync("hello world");
TypeAsync
Using AI Code Generation
1using System;2using System.Threading.Tasks;3using Microsoft.Playwright;4using Microsoft.Playwright.Core;5using Microsoft.Playwright.Helpers;6using Microsoft.Playwright.Transport.Channels;7{8 {9 static async Task Main(string[] args)10 {11 await using var playwright = await Playwright.CreateAsync();12 await using var browser = await playwright.Chromium.LaunchAsync();13 var page = await browser.NewPageAsync();14 await page.WaitForLoadStateAsync(LoadState.DOMContentLoaded);15 var keyboard = page.Keyboard;16 await keyboard.TypeAsync("Hello World");17 await page.ScreenshotAsync("screenshot.png");18 }19 }20}21await keyboard.TypeAsync("Hello World", new KeyboardTypeOptions() {Delay = 1000});22Your name to display (optional):23Your name to display (optional):24using System;25using System.Threading.Tasks;26using Microsoft.Playwright;27using Microsoft.Playwright.Core;28using Microsoft.Playwright.Helpers;29using Microsoft.Playwright.Transport.Channels;30{31 {32 static async Task Main(string[] args)33 {34 await using var playwright = await Playwright.CreateAsync();35 await using var browser = await playwright.Chromium.LaunchAsync();36 var page = await browser.NewPageAsync();37 await page.WaitForLoadStateAsync(LoadState.DOMContentLoaded);38 var keyboard = page.Keyboard;39 await keyboard.TypeAsync("Hello World", new KeyboardTypeOptions() {Delay = 1000});40 await page.ScreenshotAsync("screenshot.png");41 }42 }43}44Your name to display (optional):
TypeAsync
Using AI Code Generation
1using Microsoft.Playwright;2using System;3using System.Threading.Tasks;4{5 {6 static async Task Main(string[] args)7 {8 using var playwright = await Playwright.CreateAsync();9 await using var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions { Headless = false });10 var page = await browser.NewPageAsync();11 await page.Keyboard.TypeAsync("Hello World");12 await Task.Delay(10000);13 }14 }15}16public Task PressAsync(string key, PressOptions? options = null);17using Microsoft.Playwright;18using System;19using System.Threading.Tasks;20{21 {22 static async Task Main(string[] args)23 {24 using var playwright = await Playwright.CreateAsync();25 await using var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions { Headless = false });26 var page = await browser.NewPageAsync();27 await page.Keyboard.PressAsync("Enter");28 await Task.Delay(10000);29 }30 }31}32public Task DownAsync(string key, PressOptions? options = null);
TypeAsync
Using AI Code Generation
1await page.Keyboard.TypeAsync("Hello World");2await page.Keyboard.TypeAsync("Hello World", new TypeOptions { Delay = 100 });3await page.Keyboard.TypeAsync("Hello World");4await page.Keyboard.TypeAsync("Hello World", new TypeOptions { Delay = 100 });5await page.Keyboard.TypeAsync("Hello World");6await page.Keyboard.TypeAsync("Hello World", new TypeOptions { Delay = 100 });7await page.Keyboard.TypeAsync("Hello World");8await page.Keyboard.TypeAsync("Hello World", new TypeOptions { Delay = 100 });9await page.Keyboard.TypeAsync("Hello World");10await page.Keyboard.TypeAsync("Hello World", new TypeOptions { Delay = 100 });11await page.Keyboard.TypeAsync("Hello World");12await page.Keyboard.TypeAsync("Hello World", new TypeOptions { Delay = 100 });13await page.Keyboard.TypeAsync("Hello World");14await page.Keyboard.TypeAsync("Hello World", new TypeOptions { Delay = 100 });15await page.Keyboard.TypeAsync("Hello World");16await page.Keyboard.TypeAsync("Hello World", new TypeOptions { Delay = 100 });
LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!