Best Playwright-dotnet code snippet using Microsoft.Playwright.Core.Locator.InnerTextAsync
BotCore.cs
Source:BotCore.cs  
...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                    }1271                    Thread.Sleep(3000);1272                    page.ReloadAsync().GetAwaiter().GetResult();1273                    while (true)1274                    {1275                        Thread.Sleep(1000);1276                        var cookie = page.Context.CookiesAsync().GetAwaiter().GetResult().Any(x => x.Name == "uid");1277                        if (cookie)1278                        {1279                            StoreCookie(new Tuple<string, List<BrowserContextCookiesResult>>(itm.LoginInfo.Username,1280                                new List<BrowserContextCookiesResult>(page.Context.CookiesAsync().GetAwaiter()1281                                    .GetResult().ToArray())));1282                            break;1283                        }1284                    }1285                }*/1286                while (true)1287                {1288                    try1289                    {1290                        if (_firstPage)1291                        {1292                            firstPage = true;1293                            _firstPage = false;1294                        }1295                        if (firstPage)1296                        {1297                            var liveViewers = page.WaitForSelectorAsync(".info-view-nums").GetAwaiter().GetResult();1298                            1299                            if (liveViewers != null)1300                            {1301                                LiveViewer.Invoke(liveViewers.InnerTextAsync().GetAwaiter().GetResult());1302                                Thread.Sleep(5000);1303                            }1304                        }1305                    }1306                    catch (Exception)1307                    {1308                        //ignored1309                    }1310                    try1311                    {1312                        if (_refreshInterval != 0 &&1313                            DateTime.Now - startDate > TimeSpan.FromMinutes(_refreshInterval))1314                        {1315                            page.ReloadAsync().GetAwaiter().GetResult();...Page.cs
Source:Page.cs  
...666             {667                 Timeout = options?.Timeout,668                 Strict = options?.Strict,669             });670        public Task<string> InnerTextAsync(string selector, PageInnerTextOptions options = default)671             => MainFrame.InnerTextAsync(selector, new()672             {673                 Timeout = options?.Timeout,674                 Strict = options?.Strict,675             });676        public Task<string> TextContentAsync(string selector, PageTextContentOptions options = default)677             => MainFrame.TextContentAsync(selector, new()678             {679                 Timeout = options?.Timeout,680                 Strict = options?.Strict,681             });682        public Task TapAsync(string selector, PageTapOptions options = default)683            => MainFrame.TapAsync(684                selector,685                new()...Frame.cs
Source:Frame.cs  
...245        public Task<string> GetAttributeAsync(string selector, string name, FrameGetAttributeOptions options = default)246            => _channel.GetAttributeAsync(selector, name, options?.Timeout, options?.Strict);247        public Task<string> InnerHTMLAsync(string selector, FrameInnerHTMLOptions options = default)248            => _channel.InnerHTMLAsync(selector, options?.Timeout, options?.Strict);249        public Task<string> InnerTextAsync(string selector, FrameInnerTextOptions options = default)250            => _channel.InnerTextAsync(selector, options?.Timeout, options?.Strict);251        public Task<string> TextContentAsync(string selector, FrameTextContentOptions options = default)252            => _channel.TextContentAsync(selector, options?.Timeout, options?.Strict);253        public Task HoverAsync(string selector, FrameHoverOptions options = default)254            => _channel.HoverAsync(255                selector,256                position: options?.Position,257                modifiers: options?.Modifiers,258                force: options?.Force,259                timeout: options?.Timeout,260                trial: options?.Trial,261                strict: options?.Strict);262        public Task PressAsync(string selector, string key, FramePressOptions options = default)263            => _channel.PressAsync(264                selector,...ElementHandleChannel.cs
Source:ElementHandleChannel.cs  
...266            return (await Connection.SendMessageToServerAsync(Guid, "getAttribute", args).ConfigureAwait(false))?.GetProperty("value").ToString();267        }268        internal async Task<string> InnerHTMLAsync()269            => (await Connection.SendMessageToServerAsync(Guid, "innerHTML").ConfigureAwait(false))?.GetProperty("value").ToString();270        internal async Task<string> InnerTextAsync()271            => (await Connection.SendMessageToServerAsync(Guid, "innerText").ConfigureAwait(false))?.GetProperty("value").ToString();272        internal async Task<string> TextContentAsync()273            => (await Connection.SendMessageToServerAsync(Guid, "textContent").ConfigureAwait(false))?.GetProperty("value").ToString();274        internal Task SelectTextAsync(bool? force = null, float? timeout = null)275        {276            var args = new Dictionary<string, object>277            {278                ["force"] = force,279                ["timeout"] = timeout,280            };281            return Connection.SendMessageToServerAsync<ElementHandleChannel>(Guid, "selectText", args);282        }283        internal async Task<IReadOnlyList<string>> SelectOptionAsync(object values, bool? noWaitAfter = null, bool? force = null, float? timeout = null)284        {...Locator.cs
Source:Locator.cs  
...129        public Task HoverAsync(LocatorHoverOptions options = null)130            => _frame.HoverAsync(_selector, ConvertOptions<FrameHoverOptions>(options));131        public Task<string> InnerHTMLAsync(LocatorInnerHTMLOptions options = null)132            => _frame.InnerHTMLAsync(_selector, ConvertOptions<FrameInnerHTMLOptions>(options));133        public Task<string> InnerTextAsync(LocatorInnerTextOptions options = null)134            => _frame.InnerTextAsync(_selector, ConvertOptions<FrameInnerTextOptions>(options));135        public Task<string> InputValueAsync(LocatorInputValueOptions options = null)136            => _frame.InputValueAsync(_selector, ConvertOptions<FrameInputValueOptions>(options));137        public Task<bool> IsCheckedAsync(LocatorIsCheckedOptions options = null)138            => _frame.IsCheckedAsync(_selector, ConvertOptions<FrameIsCheckedOptions>(options));139        public Task<bool> IsDisabledAsync(LocatorIsDisabledOptions options = null)140            => _frame.IsDisabledAsync(_selector, ConvertOptions<FrameIsDisabledOptions>(options));141        public Task<bool> IsEditableAsync(LocatorIsEditableOptions options = null)142            => _frame.IsEditableAsync(_selector, ConvertOptions<FrameIsEditableOptions>(options));143        public Task<bool> IsEnabledAsync(LocatorIsEnabledOptions options = null)144            => _frame.IsEnabledAsync(_selector, ConvertOptions<FrameIsEnabledOptions>(options));145        public Task<bool> IsHiddenAsync(LocatorIsHiddenOptions options = null)146            => _frame.IsHiddenAsync(_selector, ConvertOptions<FrameIsHiddenOptions>(options));147        public Task<bool> IsVisibleAsync(LocatorIsVisibleOptions options = null)148            => _frame.IsVisibleAsync(_selector, ConvertOptions<FrameIsVisibleOptions>(options));...InnerTextAsync
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 BrowserTypeLaunchOptions10            {11            });12            var page = await browser.NewPageAsync();13            var innerText = await page.QuerySelectorAsync("body").InnerTextAsync();14            Console.WriteLine(innerText);15        }16    }17}InnerTextAsync
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            var search = await page.QuerySelectorAsync("input[title=Search]");14            await search.TypeAsync("Playwright");15            await page.Keyboard.PressAsync("Enter");16            await page.WaitForLoadStateAsync(LoadState.NetworkIdle);17            var results = await page.QuerySelectorAllAsync("div.g");18            var firstResult = await results[0].InnerTextAsync();19            Console.WriteLine(firstResult);20        }21    }22}InnerTextAsync
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 LaunchOptions10            {11            });12            var page = await browser.NewPageAsync();13            await page.ClickAsync("text=Sign in");14            await page.ClickAsync("text=Create account");15            await page.FillAsync("input[name=\"firstName\"]", "Raj");16            await page.FillAsync("input[name=\"lastName\"]", "Kumar");17            await page.FillAsync("input[name=\"Username\"]", "RajKumar1");18            await page.FillAsync("input[name=\"Passwd\"]", "RajKumar1");19            await page.FillAsync("input[name=\"ConfirmPasswd\"]", "RajKumar1");20            await page.ClickAsync("text=Next");21            await page.ClickAsync("text=I agree");22            await page.ClickAsync("text=Next");23            Console.WriteLine(await page.InnerTexInnerTextAsync
Using AI Code Generation
1var playwright = await Microsoft.Playwright.Playwright.CreateAsync();2var browser = await playwright.Chromium.LaunchAsync(new Microsoft.Playwright.LaunchOptions3{4});5var context = await browser.NewContextAsync();6var page = await context.NewPageAsync();7var element = await page.QuerySelectorAsync("input[name='q']");8await element.TypeAsync("Hello World");9await element.PressAsync("Enter");10await page.WaitForLoadStateAsync();11var searchResults = await page.QuerySelectorAllAsync("div.g");12var firstResult = searchResults[0];13var firstResultTitle = await firstResult.QuerySelectorAsync("h3");14var titleText = await firstResultTitle.InnerTextAsync();15Console.WriteLine(titleText);16await browser.CloseAsync();17var playwright = await Microsoft.Playwright.Playwright.CreateAsync();18var browser = await playwright.Chromium.LaunchAsync(new Microsoft.Playwright.LaunchOptions19{20});21var context = await browser.NewContextAsync();22var page = await context.NewPageAsync();23var element = await page.QuerySelectorAsync("input[name='q']");24await element.TypeAsync("Hello World");25await element.PressAsync("Enter");26await page.WaitForLoadStateAsync();27var searchResults = await page.QuerySelectorAllAsync("div.g");28var firstResult = searchResults[0];29var firstResultTitle = await firstResult.QuerySelectorAsync("h3");30var titleText = await firstResultTitle.InnerTextAsync();31Console.WriteLine(titleText);32await browser.CloseAsync();33var playwright = await Microsoft.Playwright.Playwright.CreateAsync();34var browser = await playwright.Chromium.LaunchAsync(new Microsoft.Playwright.LaunchOptions35{36});37var context = await browser.NewContextAsync();38var page = await context.NewPageAsync();39var element = await page.QuerySelectorAsync("input[name='q']");40await element.TypeAsync("Hello World");41await element.PressAsync("Enter");InnerTextAsync
Using AI Code Generation
1var browser = await Playwright.CreateAsync().Chromium.LaunchAsync();2var context = await browser.NewContextAsync();3var page = await context.NewPageAsync();4await page.TypeAsync("input[name=q]", "Hello World");5await page.PressAsync("input[name=q]", "Enter");6var searchResults = await page.QuerySelectorAllAsync("h3");7var firstResult = searchResults[0];8var firstResultText = await firstResult.InnerTextAsync();9await page.CloseAsync();10await browser.CloseAsync();11var browser = await Playwright.CreateAsync().Chromium.LaunchAsync();12var context = await browser.NewContextAsync();13var page = await context.NewPageAsync();14await page.TypeAsync("input[name=q]", "Hello World");15await page.PressAsync("input[name=q]", "Enter");16var searchResults = await page.QuerySelectorAllAsync("h3");17var firstResult = searchResults[0];18var firstResultText = await firstResult.InnerTextAsync();19await page.CloseAsync();20await browser.CloseAsync();21var browser = await Playwright.CreateAsync().Chromium.LaunchAsync();22var context = await browser.NewContextAsync();23var page = await context.NewPageAsync();24await page.TypeAsync("input[name=q]", "Hello World");25await page.PressAsync("input[name=q]", "Enter");26var searchResults = await page.QuerySelectorAllAsync("h3");27var firstResult = searchResults[0];28var firstResultText = await firstResult.InnerTextAsync();29await page.CloseAsync();30await browser.CloseAsync();31var browser = await Playwright.CreateAsync().Chromium.LaunchAsync();32var context = await browser.NewContextAsync();33var page = await context.NewPageAsync();34await page.TypeAsync("input[name=q]", "Hello World");35await page.PressAsync("input[name=q]", "Enter");InnerTextAsync
Using AI Code Generation
1var browser = await Playwright.CreateAsync();2var context = await browser.NewContextAsync();3var page = await context.NewPageAsync();4await page.FillAsync("input[name=q]", "Playwright");5await page.ClickAsync("text=Google Search");6await page.WaitForNavigationAsync();7var locator = page.Locator("text=Playwright");8var text = await locator.InnerTextAsync();9Console.WriteLine(text);10var browser = await Playwright.CreateAsync();11var context = await browser.NewContextAsync();12var page = await context.NewPageAsync();13await page.FillAsync("input[name=q]", "Playwright");14await page.ClickAsync("text=Google Search");15await page.WaitForNavigationAsync();16var locator = page.Locator("text=Playwright");17var elementHandle = await locator.FirstAsync();18var text = await elementHandle.InnerTextAsync();19Console.WriteLine(text);20var browser = await Playwright.CreateAsync();21var context = await browser.NewContextAsync();22var page = await context.NewPageAsync();23await page.FillAsync("input[name=q]", "Playwright");24await page.ClickAsync("text=Google Search");25await page.WaitForNavigationAsync();26var locator = page.Locator("text=Playwright");27var elementHandle = await locator.FirstAsync();28var text = await elementHandle.InnerTextAsync();29Console.WriteLine(text);30var browser = await Playwright.CreateAsync();31var context = await browser.NewContextAsync();32var page = await context.NewPageAsync();33await page.FillAsync("input[name=q]", "Playwright");34await page.ClickAsync("text=Google Search");35await page.WaitForNavigationAsync();36var text = await page.InnerTextAsync("text=Playwright");37Console.WriteLine(text);38var browser = await Playwright.CreateAsync();39var context = await browser.NewContextAsync();InnerTextAsync
Using AI Code Generation
1using Microsoft.Playwright;2using System;3using System.Threading.Tasks;4{5    {6        static async Task Main(string[] args)7        {8            await 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            var element = page.Locator("input[name='q']");14            string text = await element.InnerTextAsync();15            Console.WriteLine("Text from element is: " + text);16        }17    }18}19using Microsoft.Playwright;20using System;21using System.Threading.Tasks;22{23    {24        static async Task Main(string[] args)25        {26            await using var playwright = await Playwright.CreateAsync();27            await using var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions28            {29            });30            var page = await browser.NewPageAsync();31            var element = page.Locator("input[name='q']");32            string text = await element.InnerTextAsync();33            Console.WriteLine("Text from element is: " + text);34        }35    }36}37using Microsoft.Playwright;38using System;39using System.Threading.Tasks;40{41    {42        static async Task Main(string[] args)43        {44            await using var playwright = await Playwright.CreateAsync();45            await using var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions46            {47            });48            var page = await browser.NewPageAsync();49            var element = page.Locator("input[name='q']");50            string text = await element.InnerTextAsync();InnerTextAsync
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            var innerText = await page.Locator("css=div > a > img").InnerTextAsync();14            Console.WriteLine(innerText);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!!
