Best JavaScript code snippet using playwright-internal
transaction.js
Source:transaction.js  
...10            // create table display11            var attr_tr_next = {12                'data-id' : tr_id13            };14            var tr_next     =   Spr.createElm("tr","odd gradeX show-transaction-detail", "", attr_tr_next);15            var td_parent          =   Spr.createElm("td","", "", "");16            td_parent.setAttribute('colspan',"12");17            18            var table       =   Spr.createElm("table","table table-striped table-hover", "", "");19            var thead       =   Spr.createElm("thead","", "", "");20            table.appendChild(thead);21            var tr_thead    =   Spr.createElm("tr","warning", "", "");22            thead.appendChild(tr_thead);23            // Tao header24            var attr = {25                'style':"font-weight:bold"26            };27            var td_thead    =   Spr.createElm("td","", "", attr);28            var text        =   Spr.createTextNode("Product Code");29            td_thead.appendChild(text);30            tr_thead.appendChild(td_thead);31            var attr = {32                'style':"font-weight:bold"33            };34            var td_thead    =   Spr.createElm("td","", "", attr);35            var text        =   Spr.createTextNode("Product Name");36            td_thead.appendChild(text);37            tr_thead.appendChild(td_thead);38            var attr = {39                'style':"font-weight:bold"40            };41            var td_thead    =   Spr.createElm("td","", "", attr);42            var text        =   Spr.createTextNode("Product Image");43            td_thead.appendChild(text);44            tr_thead.appendChild(td_thead);45            var td_thead    =   Spr.createElm("td","", "", attr);46            var text        =   Spr.createTextNode("Order On Amazon");47            td_thead.appendChild(text);48            tr_thead.appendChild(td_thead);49            var td_thead    =   Spr.createElm("td","", "", attr);50            var text        =   Spr.createTextNode("Quantity");51            td_thead.appendChild(text);52            tr_thead.appendChild(td_thead);53            var td_thead    =   Spr.createElm("td","", "", attr);54            var text        =   Spr.createTextNode("Price Product");55            td_thead.appendChild(text);56            tr_thead.appendChild(td_thead);57            var td_thead    =   Spr.createElm("td","", "", attr);58            var text        =   Spr.createTextNode("Discount");59            td_thead.appendChild(text);60            tr_thead.appendChild(td_thead);61            var td_thead    =   Spr.createElm("td","", "", attr);62            var text        =   Spr.createTextNode("Total Price");63            td_thead.appendChild(text);64            tr_thead.appendChild(td_thead);65            // Tao Body66            var tbody       =   Spr.createElm("tbody","", "", "");67            var data =  data.response;68            var total_price     =   0;69            var total_product   =   0;70            var total_discount  =   0;71            for(var obj in data){72                total_product ++;73                // du lieu dung chung 74                var price       =   data[obj].price;75                var discount    =   data[obj].price_save;76                var quantity    =   data[obj].quantity;77                //==================================================78                var tr  =  Spr.createElm("tr","odd gradeX", "", "");79                tbody.appendChild(tr);80                // Create td Product Code .81                var td      =   Spr.createElm("td","product-code", "", "");82                    var attr    = {83                        'target'  : "_blank",84                        'href'    : '' + window.location.origin +'/dp?code='+ data[obj].product_code + '',85                    };86                    var a = Spr.createElm('a',"","",attr);87                var text    =   Spr.createTextNode(data[obj].product_code);88                a.appendChild(text);89                td.appendChild(a);90                tr.appendChild(td);91                // End create td Product Code92                // Create td product name93                var td      =   Spr.createElm("td","name-product", "", "");94                var text    =   Spr.createTextNode(data[obj].name);95                td.appendChild(text);96                tr.appendChild(td);97                // End create td product name98                // create td image product99                var td      =   Spr.createElm("td","name-product", "", attr);100                var attr    = {101                        'src' : data[obj].img,102                        'style' : "width:96px;height:72px",103                    };104                var img     =   Spr.createElm("img","", "", attr);    105                td.appendChild(img);106                tr.appendChild(td);107                // end create td image product108                // Create td Order Product on Amazon109                var td      =   Spr.createElm("td","product-amazon", "", "");110                    var attr    = {111                        'target'  : "_blank",112                        'href'    : 'https://www.amazon.co.jp/dp/'+ data[obj].product_code + '',113                    };114                    var a = Spr.createElm('a',"","",attr);115                var text    =   Spr.createTextNode('View on Amazon');116                a.appendChild(text);117                td.appendChild(a);118                tr.appendChild(td);119                // End td Order Product on Amazon120                // Create td quantity Product121                var td      =   Spr.createElm("td","quantity-product", "", attr);122                var text    =   Spr.createTextNode(data[obj].quantity);123                td.appendChild(text);124                tr.appendChild(td);   125                // End create td quantity Product126                // Create td price Product 127                var td          =   Spr.createElm("td","price-product", "", "");128                var span        =   Spr.createElm("span","font-red", "","");129                var sup         =   Spr.createElm("sup","", "", "");130                var text_sup    =   Spr.createTextNode(" Ä ");131                var text_span   =   Spr.createTextNode(Helper.formatNumber(Math.floor(price * exchange_rate), 0));132                sup.appendChild(text_sup);133                span.appendChild(text_span);134                span.appendChild(sup);135                td.appendChild(span);136                tr.appendChild(td);137                138                // End create td price Product 139                // Create td discount Product 140                var td          =   Spr.createElm("td","discount", "", "");141                var span        =   Spr.createElm("span","font-red", "","");142                var sup         =   Spr.createElm("sup","", "", "");143                var text_sup    =   Spr.createTextNode(" Ä ");144                var text_span   =   Spr.createTextNode(Helper.formatNumber(Math.floor(discount * exchange_rate), 0));145                sup.appendChild(text_sup);146                span.appendChild(text_span);147                span.appendChild(sup);148                td.appendChild(span);149                tr.appendChild(td);150                151                // End create td discount Product 152                // Create td Total price Product 153                var td          =   Spr.createElm("td","total-price", "", "");154                var span        =   Spr.createElm("span","font-red", "","");155                var sup         =   Spr.createElm("sup","", "", "");156                var text_sup    =   Spr.createTextNode(" Ä ");157                var text_span   =   Spr.createTextNode(Helper.formatNumber(Math.floor(price * exchange_rate * quantity), 0));158                sup.appendChild(text_sup);159                span.appendChild(text_span);160                span.appendChild(sup);161                td.appendChild(span);162                tr.appendChild(td);163                164                // End create td discount Product in japan165                // Caculator Total166                total_price += (Math.floor(price * exchange_rate * quantity));167            }168            var tr  =  Spr.createElm("tr","odd gradeX warning", "", "");169            tbody.appendChild(tr);170            var attr = {171                'style':"font-weight:bold"172            };173            var td_total    =   Spr.createElm("td","total", "", attr);174                td_total.setAttribute('colspan','7');175                var text    = Spr.createTextNode('Total :');176                td_total.appendChild(text);177            var td_value    =   Spr.createElm("td","total", "", ""); 178                var span        =   Spr.createElm("span","font-red", "","");179                var sup         =   Spr.createElm("sup","", "", "");180                var text_sup    =   Spr.createTextNode(" Ä ");181                var text_span   =   Spr.createTextNode(Helper.formatNumber(total_price, 0));182                sup.appendChild(text_sup);183                span.appendChild(text_span);184                span.appendChild(sup);185                td_value.appendChild(span);186            var td_first          =   Spr.createElm("td","", "", "");   187            tr.appendChild(td_total);188            tr.appendChild(td_value);  189            table.appendChild(tbody);190            td_parent.appendChild(table);191            tr_next.appendChild(td_first);192            tr_next.appendChild(td_parent);193            $(tr_next).insertAfter(tr_current);194        }195    }196    var callback_get_data_info   =   function(data){197        if(data.meta.success){198            $('#transaction-code').text(data.response.code);199            $('#transaction-created-at').text(Spr.format_date(data.response.created_at));200            if(isNaN(data.response.expected_day)==false){...quizView.js
Source:quizView.js  
...81    createButton = (content) => {82        const $msg = document.createElement("button");83        $msg.setAttribute("class", CLS_QUIZ_BOT_BUTTON);84        $msg.innerHTML = content;85        const $inner = this.createElm(CLS_QUIZ_BOT_BUTTON_INNER_BOX);86        const $outer = this.createElm(CLS_QUIZ_BOT_BUTTON_OUTER_BOX);87        $inner.appendChild($msg);88        $outer.appendChild($inner);89        return $outer90    }9192    deleteAllButtons = () => {93        const $btns = document.getElementsByClassName(CLS_QUIZ_BOT_BUTTON_OUTER_BOX);94        for(let $btn of $btns){95            $btn.remove();96        }97    }9899    createUserNameBox = (userName) => {100        const $name = this.createElm(CLS_QUIZ_BOT_BOT_NAME);101        $name.innerHTML = userName;102        const $inner = this.createElm(CLS_QUIZ_BOT_BOT_NAME_INNER_BOX);103        //const $outer = this.createElm(CLS_QUIZ_BOT_BOT_NAME_OUTER_BOX);104        $inner.appendChild($name);105        //$outer.appendChild($inner);        106        return $inner;107    }108109    createBotNameBox = (botName) => {110        const $name = this.createElm(CLS_QUIZ_BOT_BOT_NAME);111        $name.innerHTML = botName;112        const $inner = this.createElm(CLS_QUIZ_BOT_BOT_NAME_INNER_BOX);113        //const $outer = this.createElm(CLS_QUIZ_BOT_BOT_NAME_OUTER_BOX);114        $inner.appendChild($name);115        //$outer.appendChild($inner);116        return $inner;117118    }119120    createInnerBox = () => {121        return this.createElm(CLS_QUIZ_BOT_INNER_BOX);122    }123124    createBotMessage = (msgName, type, subtype, content, botName, putbuttonHere) => {125        const $msg = this.createElm(CLS_QUIZ_BOT_BOT_MESSAGE);126        $msg.setAttribute("id", msgName);127        128        if(type == "one-way-message" && subtype == "link"){129            $msg.innerHTML = this.findMatchMessage(content);    130        } else {131            $msg.innerHTML = content;132        }133        134        const $inner = this.createElm(CLS_QUIZ_BOT_BOT_MESSAGE_INNER_BOX);135        const $outer = this.createElm(CLS_QUIZ_BOT_BOT_MESSAGE_OUTER_BOX);136        const $nameBox = this.createBotNameBox(botName);137        $inner.appendChild($msg);138        $inner.appendChild($nameBox);139        $outer.appendChild($inner);140141        if(putbuttonHere){142            const $btn = this.createButton("Next");143            this.bindButton($btn);144            $outer.appendChild($btn);145        }146        this.$root.appendChild($outer);147    }148 149    createOptions = ($box, name, subtype, options, disabledOptions) => {150        let type;151        if(subtype == "radio") type = "radio";152        else if (subtype == "checkbox") type = "checkbox";153        else console.error("error in createOptions - unsupported type:", subtype);154155        for(let key in options){156            let $option = document.createElement("input");157            let id = name + "@" + key;158            $option.setAttribute("type", type);159            $option.setAttribute("value", key);160            $option.setAttribute("id", id);161            $option.setAttribute("name", name);162            if( key in disabledOptions){163                $option.disabled = true;164            }165            $option.innerHTML = options[key];166            let $wrapper = document.createElement("div");167            $wrapper.appendChild($option)168            let $label = document.createElement("label")169            $label.setAttribute("for", id);170            $label.innerHTML = options[key];171            $wrapper.appendChild($label)172            $box.appendChild($wrapper);173        }174    }175    176    createUserMessage = (msgName, type, subtype, options, disabledOptions, numRetries, userName, putbuttonHere) => {177        let $msg = this.createElm(CLS_QUIZ_BOT_USER_MESSAGE);178        if(type == "multiple-choice") {179            this.createOptions($msg, msgName + numRetries, subtype, options, disabledOptions);180        }181        const $inner = this.createElm(CLS_QUIZ_BOT_USER_MESSAGE_INNER_BOX);182        const $outer = this.createElm(CLS_QUIZ_BOT_USER_MESSAGE_OUTER_BOX);183        const $nameBox = this.createUserNameBox(userName);184        $inner.appendChild($msg);185        $inner.appendChild($nameBox);186        $outer.appendChild($inner);187        if(putbuttonHere) {188            const $btn = this.createButton("Submit");189            this.bindButtonWithOptions($btn, msgName + numRetries);190            $outer.appendChild($btn);191        }192        this.$root.appendChild($outer);193    }194195196    //https://javascript.info/regexp-groups197    findMatchMessage = (text) => {198        const regex = /(?<msg>\[.+?\])(?<address>\(.+?\))/; // something like [Let's go to the next lesson](http://someaddress)199        const match = text.match(regex).groups;   200        return match.msg.substring(1,match.msg.length - 1)201    }202    findMatchAddress = (text) => {203        const regex = /(?<msg>\[.+?\])(?<address>\(.+?\))/; // something like [Let's go to the next lesson](http://someaddress)204        const match = text.match(regex).groups;205        return match.address.substring(1,match.address.length - 1)206    }207    createButtonOnlyUserMessage = (subtype, text) => {208        const $msg = document.createElement("button");209        $msg.setAttribute("class", CLS_QUIZ_BOT_BUTTON);210        if (subtype == "link") {211            $msg.innerHTML = "Next";212            this.bindButtonWithLink($msg, this.findMatchAddress(text));213        } else {214            $msg.innerHTML = "Next";215            this.bindButton($msg);216        }217218        const $inner = this.createElm(CLS_QUIZ_BOT_BUTTON_INNER_BOX);219        const $outer = this.createElm(CLS_QUIZ_BOT_BUTTON_OUTER_BOX);220        const $wrapper = this.createElm(CLS_QUIZ_BOT_USER_MESSAGE_OUTER_BOX);221        $inner.appendChild($msg);222        $outer.appendChild($inner);223        $wrapper.appendChild($outer)224        this.$root.appendChild($wrapper);225    }226227    createHint = (wrongToHints) => {228        console.log(wrongToHints)229        const $msg = this.createElm(CLS_QUIZ_BOT_HINT);230        let text = [];231        for(let key in wrongToHints){232            text.push(wrongToHints[key]);233        }234        console.log(text.join(' '));235        $msg.innerHTML = text.join(' ');236        const $inner = this.createElm(CLS_QUIZ_BOT_HINT_INNER_BOX);237        const $outer = this.createElm(CLS_QUIZ_BOT_HINT_OUTER_BOX);238        $inner.appendChild($msg);239        $outer.appendChild($inner);240        this.$root.appendChild($outer);241    }242243    installBot = ($dom) => {244        $dom.appendChild(this.createInnerBox());245        this.$root = $dom.lastChild;246    }247248    /**249     * 250     * @param {PayloadFromMachine} payload 251     */
...index.js
Source:index.js  
1function createElm(tag, objectCl) {2  const elem = document.createElement(tag);3  for (const key of Object.keys(objectCl)) {4    elem[key] = objectCl[key];5  }6  return elem;7}8function topSections(userData) {9  const headerSec = headerSection(userData);10  container.append(headerSec);11}12function bottomSection(postData, users) {13  console.log("bottom section users", users);14  const feedSec = feedSection(postData, users);15  const createPost = createPostSection(feedSec);16  mainSection.append(createPost, feedSec);17  container.append(mainSection);18}19function userProfile(userData, wrapperEl) {20  const chipEl = createElm("div", { className: "chip" });21  const avatarEl = createElm("div", { className: "avatar-small" });22  const imgEl = createElm("img", {23    src: userData.avatar,24    alt: userData.username,25  });26  const spanEl = createElm("span", { innerText: userData.username });27  avatarEl.append(imgEl);28  chipEl.append(avatarEl, spanEl);29  wrapperEl.append(chipEl);30  return wrapperEl;31}32function headerSection(userData) {33  const headerEl = createElm("header", { className: "main-header" });34  const wrapperEl = createElm("wrapper", { className: "wrapper" });35  for (const user of userData) {36    userProfile(user, wrapperEl);37  }38  headerEl.append(wrapperEl);39  return headerEl;40}41function createPostSection(postAdd) {42  const postSection = createElm("section", {43    className: "create-post-section",44  });45  const formEl = createElm("form", {46    id: "create-post-form",47    autocomplete: "off",48  });49  const h2El = createElm("h2", { innerText: "Create a post" });50  const labelElImage = createElm("label", { for: "image", innerText: "Image" });51  const inputImage = createElm("input", {52    id: "image",53    name: "image",54    type: "text",55  });56  const labelElTitle = createElm("label", { for: "title", innerText: "Title" });57  const inputTitle = createElm("input", {58    id: "title",59    name: "title",60    type: "text",61  });62  const labelElContent = createElm("label", {63    for: "content",64    innerText: "Content",65  });66  const textAreaEL = createElm("textarea", {67    id: "content",68    name: "content",69    rows: "2",70    columns: "30",71  });72  const divEl = createElm("div", { className: "acttion-btns" });73  const buttonPreview = createElm("button", {74    id: "preview-btn",75    type: "button",76    innerText: "Preview",77  });78  const buttonSubmit = createElm("button", {79    type: "submit",80    innerText: "Post",81  });82  formEl.addEventListener("submit", function (event) {83    event.preventDefault();84    const post = {85      title: inputTitle.value,86      image: inputImage.value,87      content: textAreaEL.value,88    };89    fetch("http://localhost:3000/posts", {90      method: "POST",91      headers: {92        "Content-Type": "application/json",93      },94      body: JSON.stringify(post),95    })96      .then(function (response) {97        return response.json();98      })99      .then(function (newPost) {100        userPosts(newPost, postAdd);101      });102    formEl.reset();103  });104  divEl.append(buttonPreview, buttonSubmit);105  formEl.append(106    h2El,107    labelElImage,108    inputImage,109    labelElTitle,110    inputTitle,111    labelElContent,112    textAreaEL,113    divEl114  );115  postSection.append(formEl);116  return postSection;117}118function userPosts(post, ulEl, postUser) {119  const liEl = createElm("li", { className: "post" });120  const chipEl = createElm("div", { className: "chip" });121  const avatarEl = createElm("div", { className: "avatar-small" });122  const imgEl = createElm("img", {123    src: postUser.avatar,124    alt: postUser.username,125  });126  const spanEl = createElm("span", { innerText: postUser.username });127  const postImageEl = createElm("div", { className: "post--image" });128  const imagePostEl = createElm("img", {129    src: post.image.src,130    alt: "undefined",131    width: 288,132  });133  const postContent = createElm("div", { className: "post--content" });134  const h2El = createElm("h2", { innerText: post.title });135  const pEl = createElm("p", {136    innerText: post.content,137  });138  const commentsEl = createElm("div", { className: "post--comments" });139  const h3El = createElm("h3", { innerText: "Comments" });140  const formEl = createElm("form", {141    id: "create-comment-form",142    autocomplete: "off",143  });144  const labelEl = createElm("label", {145    for: "comment",146    innerText: "Add Comment",147  });148  const inputEl = createElm("input", {149    id: "comment",150    name: "comment",151    type: "text",152  });153  const buttonSubmit = createElm("button", {154    type: "submit",155    innerText: "Comment",156  });157  const postComment = createElm("div", { className: "post--comment" });158  for (const comment of post.comments) {159    commentsSec(comment, commentsEl);160  }161  formEl.append(labelEl, inputEl, buttonSubmit);162  postImageEl.append(imagePostEl);163  commentsEl.append(h3El, formEl);164  postContent.append(h2El, pEl);165  avatarEl.append(imgEl);166  chipEl.append(avatarEl, spanEl);167  liEl.append(chipEl, postImageEl, postContent, commentsEl);168  ulEl.append(liEl);169}170function commentsSec(comment, commentsEl) {171  const avatarSmall = createElm("div", { className: "avatar-small" });172  const smallImgEl = createElm("img", {173    src: comment.userId,174    alt: "Van Gogh",175  });176  const postComment = createElm("div", { className: "post--comment" });177  const pEl2 = createElm("p", { innerText: comment.content });178  avatarSmall.append(smallImgEl);179  postComment.append(avatarSmall, pEl2);180  commentsEl.append(postComment);181}182function feedSection(postData, users) {183  console.log("feed section users", users);184  const sectionEl = createElm("section", { className: "feed" });185  const ulEl = createElm("ul", { className: "stack" });186  for (const post of postData) {187    let postUser = users.find(function (user) {188      return user.id === post.userId;189    });190    console.log("After find user", postUser);191    userPosts(post, ulEl, postUser);192  }193  sectionEl.append(ulEl);194  return sectionEl;195}196function getUser() {197  let users = {};198  fetch("http://localhost:3000/users")199    .then(function (response) {200      return response.json();201    })202    .then(function (data) {203      users = data;204      fetch("http://localhost:3000/posts")205        .then(function (response) {206          return response.json();207        })208        .then(function (userPosts) {209          topSections(users);210          bottomSection(userPosts, users);211          console.log("After fetch", users);212        });213    });214}215// function getPost() {216//   fetch("http://localhost:3000/posts")217//     .then(function (response) {218//       return response.json();219//     })220//     .then(function (userPosts) {221//       bottomSection(userPosts);222//     });223// }224getUser();225// getPost();226const container = document.querySelector("#root");...toast.js
Source:toast.js  
...26    _this.showBtns();27    _this.showSelector();28  };29  _this.showBtns = function () {30    const toastButtons = createElm("div");31    toastButtons.addClass("toast-buttons");32    const successBtn = createBtn("success", "Success");33    const dangerBtn = createBtn("danger", "Danger");34    const infoBtn = createBtn("info", "Info");35    const warningBtn = createBtn("warning", "Warning");36    toastButtons.appendChild(successBtn);37    toastButtons.appendChild(dangerBtn);38    toastButtons.appendChild(infoBtn);39    toastButtons.appendChild(warningBtn);40    appendChild(".controlPanel", toastButtons);41    successBtn.addEventListener("click", () => addToastOnClick("success"));42    dangerBtn.addEventListener("click", () => addToastOnClick("danger"));43    infoBtn.addEventListener("click", () => addToastOnClick("info"));44    warningBtn.addEventListener("click", () => addToastOnClick("warning"));45  };46  _this.showSelector = function () {47    const selector = createElm("div");48    selector.addClass("select");49    const select = createElm("select");50    select.addClass("position-select");51    const defOption = createOpt("Select Position");52    const topRightOption = createOpt("Top Right", "top-right");53    const topLeftOption = createOpt("Top Left", "top-left");54    const bottomLeftOption = createOpt("Bottom Left", "bottom-left");55    const bottomRightOption = createOpt("Bottom Right", "bottom-right");56    select.appendChild(defOption);57    select.appendChild(topRightOption);58    select.appendChild(topLeftOption);59    select.appendChild(bottomLeftOption);60    select.appendChild(bottomRightOption);61    selector.appendChild(select);62    appendChild(".controlPanel", selector);63  };64  _this.createContainers = function () {65    const controlPanel = createElm("div");66    controlPanel.addClass("controlPanel");67    const topRightCont = createCont("top-right");68    const bottomRightCont = createCont("bottom-right");69    const topLeftCont = createCont("top-left");70    const bottomLefttCont = createCont("bottom-left");71    appendChild(options.rootElement, controlPanel);72    appendChild(options.rootElement, topRightCont);73    appendChild(options.rootElement, bottomRightCont);74    appendChild(options.rootElement, topLeftCont);75    appendChild(options.rootElement, bottomLefttCont);76  };77  _this.showToast = function (78    position = options.position,79    variant = options.variant80  ) {81    const notificationToast = createElm("div");82    notificationToast.addClass("notification toast " + variant);83    deleteToast(notificationToast, options.autoHideDuration);84    const notificationImage = createElm("div");85    notificationImage.addClass("notification-image");86    const toastImage = document.createElement("img");87    toastImage.src = "assets/" + images[variant];88    const notTitleMessage = createElm("div");89    notTitleMessage.addClass("notification-message-title");90    const notificationTitle = createElm("p");91    notificationTitle.addClass("notification-title");92    notificationTitle.textContent = options.title;93    const notificationMessage = createElm("p");94    notificationMessage.textContent = options.content;95    notificationMessage.addClass("notification-message");96    const closeBtn = createElm("button");97    closeBtn.innerHTML = "X";98    closeBtn.addEventListener("click", function () {99      if (options.closeOnClick) notificationToast.style.display = "none";100    });101    notTitleMessage.appendChild(notificationTitle);102    notTitleMessage.appendChild(notificationMessage);103    notificationImage.appendChild(toastImage);104    notificationToast.appendChild(notificationImage);105    notificationToast.appendChild(notTitleMessage);106    notificationToast.appendChild(closeBtn);107    appendChild(".notification-container." + position, notificationToast);108  };109  _this.prepareControls();110}111// Functions //112Object.prototype.addClass = function (className) {113  this.setAttribute("class", className);114};115const createElm = (tag) => document.createElement(tag);116const createBtn = (className, content) => {117  const btn = createElm("button");118  btn.addClass(className);119  btn.innerHTML = content;120  return btn;121};122const createOpt = (content, value = "bottom-right") => {123  const option = createElm("option");124  option.innerHTML = content;125  option.value = value;126  return option;127};128const createCont = (posClass) => {129  const notificationContainer = createElm("div");130  notificationContainer.addClass("notification-container " + posClass);131  return notificationContainer;132};133const deleteToast = (element, time) => {134  setTimeout(() => (element.style.display = "none"), time);135};136const appendChild = (root, child) =>...tetris.js
Source:tetris.js  
1// Tetris(ä¿ç½æ¯æ¹å)ç±»2function Tetris(css,x,y,shape) { 3    // å建4个divç¨æ¥ç»ååºåç§æ¹å4    var myCss = css?css:"c";5    this.divs = [createElm("div",myCss),createElm("div",myCss),createElm("div",myCss),createElm("div",myCss)]6    // çé®1ï¼è¿ä¸ªifåå¨çä½ç¨ï¼7    // 没æshapeè¯´ææ²¡ææ¯ç¬¬ä¸æ¬¡å建8    if(!shape){9        // é¢ååºåçæ¹å10        this.divs2 = [createElm("div",myCss),createElm("div",myCss),createElm("div",myCss),createElm("div",myCss)]11        // åæ°åºå12        this.score = createElm("div","g");13        this.score.style.top = 10*size+"px";14        this.score.style.left = (col+1)*size+"px";15        this.score.style.backgroundColor = "rgb(0,0,0)"16        this.score.innerHTML = "scoreï¼0";17    }18    19    this.container = null;20    // 对xãyãshapeãcontainerè¿è¡åå§åæä½21    this.refresh = function () {22        this.x = (typeof(x)!='undefined')?x:3;23        this.y = (typeof(y)!='undefined')?y:0;24        // 妿æä¼ åï¼ä¼å
使ç¨åæ°çï¼å¦ææé¢åï¼ä¼å
使ç¨é¢åï¼25        // 齿²¡æå°±èªå·±çæ26        if (shape) {this.shape = shape;}...appalert.spec.js
Source:appalert.spec.js  
...34		return elements;35	};36	37	it('should have a closeAlert function', function() {38		var eles =createElm({});39		expect(elmScope).toBeDefined();40		expect(elmScope.closeAlert).toEqual(jasmine.any(Function));41	});42	43	it('should start with only alert class', function() {44		var eles =createElm({});45		expect(eles.alert.hasClass('alert')).toBe(true);46		expect(eles.alert.hasClass('alert-error')).toBe(false);47		expect(eles.alert.hasClass('alert-success')).toBe(false);48	});49	it('should show success alert', function() {50		var eles =createElm({});51		$scope.$emit('evtAppalertAlert', {type:'success', 'msg':'Success!'});52		$scope.$digest();53		54		expect(eles.alert.hasClass('alert-success')).toBe(true);55		expect(eles.msg.text()).toBe('Success!');56	});57	58	it('should show error alert', function() {59		var eles =createElm({});60		$scope.$emit('evtAppalertAlert', {type:'error', 'msg':'Error'});61		$scope.$digest();62		expect(eles.alert.hasClass('alert-error')).toBe(true);63		expect(eles.alert.hasClass('alert-success')).toBe(false);64		expect(eles.msg.text()).toBe('Error');65	});66	67	it('should show yellow alert by default if no type set', function() {68		var eles =createElm({});69		$scope.$emit('evtAppalertAlert', {'msg':'Default'});70		$scope.$digest();71		expect(eles.alert.hasClass('alert-error')).toBe(false);72		expect(eles.alert.hasClass('alert-success')).toBe(false);73	});74	75	it('should close alert immediately (no delay) by clicking "x" and calling closeAlert', function() {76		var eles =createElm({});77		//show alert first78		$scope.$emit('evtAppalertAlert', {'msg':'Default'});79		$scope.$digest();80		//close alert81		elmScope.closeAlert({});82		$scope.$digest();83		//need timeout otherwise it doesn't work..84		$timeout(function() {85			expect(eles.alert.hasClass('hidden')).toBe(true);86		}, 50);87	});88	89	it('should close alert by emitting event', function() {90		var eles =createElm({});91		//show alert first92		$scope.$emit('evtAppalertAlert', {'msg':'Default'});93		$scope.$digest();94		//close alert95		$scope.$emit('evtAppalertAlert', {'close':true});96		$scope.$digest();97		//need brief timeout to allow it to update (though it should be near immediate)98		$timeout(function() {99			expect(eles.alert.hasClass('hidden')).toBe(true);100		}, 50);101	});102	103	it('should hide alert automatically after given duration', function() {104		var eles =createElm({});105		var delay =750;106		$scope.$emit('evtAppalertAlert', {'msg':'Default', 'delay':delay});107		$scope.$digest();108		109		//show NOT be hidden before time is up	//not sure if this is actually working - can't test this since $timeout is mocked for unit tests? it just fires when you run $timeout.flush()? - http://stackoverflow.com/questions/19484940/how-does-timeout-work-in-angular-tests-running-in-karma110		$timeout(function() {111			expect(eles.alert.hasClass('hidden')).toBe(false);112		}, (delay/2));113		$timeout.flush();		//need this for the $timeout's to actually run..114		$timeout.flush();115		//SHOULD be hidden after time is up116		$timeout(function() {117			expect(eles.alert.hasClass('hiding')).toBe(true);118			expect(eles.alert.hasClass('hidden')).toBe(true);...script.js
Source:script.js  
1let blogItems = document.getElementsByClassName("blog-items")[0];2function createElm(elm) {3  return document.createElement(elm);4}5function getRandomNumber(min, max) {6    return Math.floor(Math.random() * (max - min) + min);7}8function generateRandomGibberishNames(){9    let alphabets = "abcdefghijklmnopqrstuvwxyz";10    let gibberishUsername = "";11    for(let i = 0; i < 6; i++){12        gibberishUsername += alphabets[getRandomNumber(0, 26)];13    }14    return gibberishUsername + getRandomNumber(0,1000);15}16function getFormattedDate(date) {17  const monthNames = [18    "Jan",19    "Feb",20    "Mar",21    "Apr",22    "May",23    "Jun",24    "Jul",25    "Aug",26    "Sep",27    "Oct",28    "Nov",29    "Dec",30  ];31  const d = new Date(date);32  return monthNames[d.getMonth()] + " " + d.getDate();33}34function modifyImagesLink(){35    let gender = ["men", "women"];36        return `https://randomuser.me/api/portraits/med/${gender[getRandomNumber(0,2)]}/${getRandomNumber(0,100)}.jpg`;37}38blogData.forEach(function (blog, index) {39  blogItems.append(createBlogs(blog, index));40});41function createBlogs(blog, index) {42  let parentDiv = createElm("div");43  parentDiv.classList.add("blog-content", "borr-top");44  parentDiv.setAttribute("data-id", index);45  let childDivOne = createElm("div");46  childDivOne.classList.add("flex", "align-ct");47  let figure = createElm("figure");48  let img = createElm("img");49  img.src = modifyImagesLink();50  img.alt = "test";51  figure.append(img);52  let divInner1 = createElm("div");53  divInner1.classList.add("blog-meta");54  let a1 = createElm("a");55  a1.href = "#";56  a1.innerText = generateRandomGibberishNames();57  let time = createElm("time");58  time.innerText = getFormattedDate(blog.createdAt);59  time.setAttribute("datetime", blog.createdAt);60  divInner1.append(a1, time);61  childDivOne.append(figure, divInner1);62  let childDivTwo = createElm("div");63  childDivTwo.classList.add("blog-details");64  let a2 = createElm("a");65  a2.href = "#";66  let h2 = createElm("h2");67  h2.innerText = blog.title;68  a2.append(h2);69  let divInner2 = createElm("div");70  divInner2.classList.add("hashtag");71  for (let i = 0; i < blog.tags.length; i++) {72    let a = createElm("a");73    a.href = "#";74    a.innerText = "#" + blog.tags[i];75    divInner2.append(a);76  }77  let divInner3 = createElm("div");78  divInner3.classList.add("blog-feedback", "flex", "justify-sb");79  let divInner4 = createElm("div");80  divInner4.classList.add("col-1-2");81  if (blog.feedback.hearts > 0) {82    let a3 = createElm("a");83    a3.href = "#";84    let i1 = createElm("i");85    i1.classList.add("far", "fa-heart");86    a3.innerText = blog.feedback.hearts + " reactions";87    a3.prepend(i1);88    divInner4.append(a3);89  }90  let a4 = createElm("a");91  a4.href = "#";92  let i2 = createElm("i");93  i2.classList.add("far", "fa-comments");94  a4.innerText = (blog.feedback.comments > 0 ? (blog.feedback.comments + " comments") : "Add Comment");95  a4.prepend(i2);96  divInner4.append(a4);97//   divInner4.append(a3, a4);98  let divInner5 = createElm("div");99  divInner5.classList.add("col-2-2");100  let span = createElm("span");101  span.innerText = blog.readTime + " min read";102  let a5 = createElm("a");103  a5.classList.add("save-btn");104  a5.href = "#";105  a5.innerText = "Save";106  divInner5.append(span, a5);107  divInner3.append(divInner4, divInner5);108  childDivTwo.append(a2, divInner2, divInner3);109  parentDiv.append(childDivOne, childDivTwo);110  return parentDiv;...small-jsx.js
Source:small-jsx.js  
...54    // } else55    // console.warn(`${attr} is not a valid property of a <${type}>`);56  });57}58function createElm(tagName, textOrPropsOrChild, ...otherChildren) {59  const elm = document.createElement(tagName);60  updateELm(elm, textOrPropsOrChild)61  if (otherChildren) appendArray(elm, otherChildren);62  return elm;63}64const a = (...args) => createElm(`a`, ...args);65const button = (...args) => createElm(`button`, ...args);66const div = (...args) => createElm(`div`, ...args);67const h1 = (...args) => createElm(`h1`, ...args);68const header = (...args) => createElm(`header`, ...args);69const p = (...args) => createElm(`p`, ...args);70const span = (...args) => createElm(`span`, ...args);71const img = (...args) => createElm(`img`, ...args);72const i = (...args) => createElm(`i`, ...args);73const nav = (...args) => createElm(`nav`, ...args);74const ul = (...args) => createElm(`ul`, ...args);75const li = (...args) => createElm(`li`, ...args);76const input = (...args) => createElm(`input`, ...args);77const footer = (...args) => createElm(`footer`, ...args);78const h3 = (...args) => createElm(`h3`, ...args);79const aside = (...args) => createElm(`aside`, ...args);...Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3  const browser = await chromium.launch();4  const context = await browser.newContext();5  const page = await context.newPage();6  const elm = await page.createElm({7    properties: {8    }9  });10  await page.screenshot({ path: `example.png` });11  await browser.close();12})();13const { chromium } = require('playwright');14(async () => {15  const browser = await chromium.launch();16  const context = await browser.newContext();17  const page = await context.newPage();18  const elm = await page.createElm({19    properties: {20    }21  });22  await page.screenshot({ path: `example.png` });23  await browser.close();24})();25const { chromium } = require('playwright');26(async () => {27  const browser = await chromium.launch();28  const context = await browser.newContext();29  const page = await context.newPage();30  const elm = await page.createElm({31    properties: {32    }33  });34  await page.screenshot({ path: `example.png` });35  await browser.close();36})();37const { chromium } = require('playwright');38(async () => {39  const browser = await chromium.launch();40  const context = await browser.newContext();41  const page = await context.newPage();42  const elm = await page.createElm({43    properties: {44    }45  });46  await page.screenshot({ path: `example.png` });47  await browser.close();48})();49const { chromium } = require('playwright');50(async () => {51  const browser = await chromium.launch();52  const context = await browser.newContext();53  const page = await context.newPage();54  const elm = await page.createElm({55    properties: {56    }57  });58  await page.screenshot({ path: `example.png` });59  await browser.close();60})();61const { chromium } = require('Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3  const browser = await chromium.launch({headless:false});4  const page = await browser.newPage();5  const element = await page.$('input[name="q"]');6  await element.evaluate(element => element.value = 'Playwright');7  await page.screenshot({ path: 'example.png' });8  await browser.close();9})();10const { chromium } = require('playwright');11(async () => {12  const browser = await chromium.launch({headless:false});13  const page = await browser.newPage();14  const element = await page.$('input[name="q"]');15  await element.evaluate(element => element.value = 'Playwright');16  await page.screenshot({ path: 'example.png' });17  await browser.close();18})();19const { chromium } = require('playwright');20(async () => {21  const browser = await chromium.launch({headless:false});22  const page = await browser.newPage();23  const element = await page.$('input[name="q"]');24  await element.evaluate(element => element.value = 'Playwright');25  await page.screenshot({ path: 'example.png' });26  await browser.close();27})();28const { chromium } = require('playwright');29(async () => {30  const browser = await chromium.launch({headless:false});31  const page = await browser.newPage();32  const element = await page.$('input[name="q"]');33  await element.evaluate(element => element.value = 'Playwright');34  await page.screenshot({ path: 'example.png' });35  await browser.close();36})();37const { chromium } = require('playwright');38(async () => {39  const browser = await chromium.launch({headless:false});40  const page = await browser.newPage();41  const element = await page.$('input[name="q"]');42  await element.evaluate(element => element.value = 'Playwright');Using AI Code Generation
1const { createElm } = require('playwright/lib/server/dom');2const { createTestServer } = require('playwright/test');3const { chromium } = require('playwright');4(async () => {5  const server = await createTestServer();6  server.setRoute('/test.html', (req, res) => {7    res.end(`8            window.onload = () => {9              const div = document.createElement('div');10              div.innerHTML = 'Hello World';11              document.body.appendChild(div);12            }13    `);14  });15  const browser = await chromium.launch();16  const context = await browser.newContext();17  const page = await context.newPage();18  await page.goto(server.PREFIX + '/test.html');19  const divHandle = await page.evaluateHandle(() => document.querySelector('div'));20  const div = createElm(divHandle);21  console.log(await div.textContent());22  await browser.close();23})();Using AI Code Generation
1const { createElm } = require('playwright/lib/server/dom.js');2const { JSHandle } = require('playwright/lib/server/frames.js');3const { chromium } = require('playwright');4(async () => {5  const browser = await chromium.launch();6  const context = await browser.newContext();7  const page = await context.newPage();8  const elmHandle = await createElm(page, 'div', {9    style: 'color: blue;',10  });11  const elm = await elmHandle.evaluateHandle((e) => e);12  await page.evaluateHandle((e) => document.body.appendChild(e), elm);13  await page.screenshot({ path: `example.png` });14  await browser.close();15})();Using AI Code Generation
1const { createElm } = require("@playwright/test");2const elm = createElm("div", { id: "mydiv" });3const { createElm } = require("@playwright/test");4const elm = createElm("div", { id: "mydiv" });5import { createElm } from "@playwright/test";6const elm = createElm("div", { id: "mydiv" });7import { createElm } from "@playwright/test";8const elm = createElm("div", { id: "mydiv" });9import { createElm } from "@playwright/test";10const elm = createElm("div", { id: "mydiv" });11import { createElm } from "@playwright/test";12const elm = createElm("div", { id: "mydiv" });13const { createElm } = require("@playwright/test");14const elm = createElm("div", { id: "mydiv" });15const { createElm } = require("@playwright/test");16const elm = createElm("div", { id: "mydiv" });17const { createElm } = require("@playwright/test");18const elm = createElm("div", { id: "mydiv" });19const { createElm } = require("@playwright/test");20const elm = createElm("div", { id: "mydiv" });Using AI Code Generation
1const {createElm} = require('playwright');2const {getTestState} = require('playwright/test');3const {test} = require('@playwright/test');4const {expect} = require('@playwright/test');5test.describe('', () => {6  test.beforeEach(async ({page}) => {7  });8  test('createElm', async ({page}) => {9    const elm = await createElm(page, {name: 'input', attributes: {name: 'q'}, text: 'hello'});10    await elm.fill('hello');11    await elm.press('Enter');12    const url = await page.url();13  });14});Using AI Code Generation
1const { createElm } = require('playwright/lib/server/dom.js');2const { ElementHandle } = require('playwright/lib/server/dom.js');3const element = createElm('div', [], {});4console.log(element);5const handle = new ElementHandle(element);6console.log(handle);7const { createElm } = require('playwright/lib/server/dom.js');8const { ElementHandle } = require('playwright/lib/server/dom.js');9const element = createElm('div', [], {});10console.log(element);11const handle = new ElementHandle(element);12console.log(handle);13const { createElm } = require('playwright/lib/server/dom.js');14const { ElementHandle } = require('playwright/lib/server/dom.js');15const element = createElm('div', [], {});16console.log(element);17const handle = new ElementHandle(element);18console.log(handle);19const { createElm } = require('playwright/lib/server/dom.js');20const { ElementHandle } = require('playwright/lib/server/dom.js');21const element = createElm('div', [], {});22console.log(element);23const handle = new ElementHandle(element);24console.log(handle);Using AI Code Generation
1const { createElm } = require('@playwright/test/lib/server/dom');2const elm = createElm('div', { className: 'my-class' });3console.log(elm.outerHTML);4const { createElm } = require('@playwright/test/lib/server/dom');5const elm = createElm('div', { className: 'my-class' }, [6  createElm('h1', { text: 'Hello' }),7  createElm('p', { text: 'Welcome to Playwright' }),8]);9console.log(elm.outerHTML);10const { createElm } = require('@playwright/test/lib/server/dom');11const elm = createElm('div', { className: 'my-class' }, [12  createElm('h1', { text: 'Hello' }),13  createElm('p', { text: 'Welcome to Playwright' }),14]);15console.log(elm.outerHTML);16const { createElm } = require('@playwright/test/lib/server/dom');17const elm = createElm('div', { className: 'my-class' }, [18  createElm('h1', { text: 'Hello' }),19  createElm('p', { text: 'Welcome to Playwright' }),20]);21console.log(elm.outerHTML);Using AI Code Generation
1const { createElm } = require('@playwright/test/lib/server/frames');2const { createServer } = require('http-server');3const server = createServer({ root: '.' });4server.listen(8080);5(async () => {6    const { page } = await browser.newContext().newPage();7    const elementHandle = await createElm(page, 'div', { id: 'foo' });8    await elementHandle.fill('bar');9    console.log(await elementHandle.getAttribute('id'));10    await elementHandle.click();11    await page.close();12})();13      document.getElementById('foo').addEventListener('click', () => {14        alert('foo');15      });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!!
