// ====== ** Thay đổi thông tin test ở đây ** ====== // Trình duyệt test const Browser = 'chrome'; // Lựa chọn: chrome, firefox const DOMAIN = "https://demopc8.hurasoft.com/?show_template=xstore"; // Tên miền var text_search = 'case'; // Từ khóa tìm kiếm var productNameClass = '.p-name'; // Class chứa url sản phẩm var buttonAddProductId = '#add_to_cart' // Id/class nút thêm sp vào giỏ ở trang chi tiết sản phẩm // Thông tin người dùng, sử dụng để nhập vào form: Mua hàng, đăng ký, đăng nhập, bình luận,..... var user_name = 'Test giỏ hàng'; // ==== Tên var user_email = 'test@mail.com'; // ==== Email var user_mobile = '0987654321'; // ==== Số điện thoại var user_address = 'Số 3 ngõ 18 Yên Lãng'; // ==== Địa chỉ var user_province = 'Hà Nội'; // ==== Tỉnh/Thành phố var user_district = 'Quận Đống Đa'; // ==== Quận/Huyện var user_ward = 'Phường Láng Hạ'; // ==== Phường/Xã var user_content = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.'; // Nội dung // ============================================================================================================ // ==================================== ** KHÔNG THAY ĐỔI ** ==================================== const { Builder, By, Select, until, implicitlyWait } = require("selenium-webdriver"); const { Driver } = require("selenium-webdriver/chrome"); require('chromedriver'); require('selenium-webdriver/chrome'); (async function AddToCartTest() { let driver = await new Builder().forBrowser(Browser).build(); try { // Setup await driver.get(DOMAIN); await driver.manage().window().maximize(); await driver.manage().setTimeouts({ implicit: 3000, pageLoad: 3000, script: 3000 }) driver.executeScript(` var jquery_script = document.createElement('script'); jquery_script.src = 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.3/jquery.min.js'; document.getElementsByTagName('head')[0].appendChild(jquery_script); `) driver.executeScript('$ = window.jQuery;'); // Load jQuery // == End Setup // 1. Header: Tìm kiếm sp var input_search = await driver.findElement(By.xpath("//input[@name='q']")); await testSearchWeb(driver, text_search, input_search).then(function redirectProductDetail() { goToProductDetail(driver, productNameClass); }); // 2. Chi tiết sp: Thêm sp vào giỏ await driver.wait(until.elementLocated(By.css(buttonAddProductId))).click(); // 3. Giỏ hàng: Gửi đơn hàng await submitCartForm(driver); } finally { checkListWeb(driver); setTimeout(() => { driver.quit(); }, 5000) } })(); // == Header: Test hiển thị danh sách sản phẩm tìm kiếm async function testSearchWeb(driver, text_search, input_search) { await driver.actions() .move({ origin: input_search }) .pause(1000) .doubleClick() .sendKeys(text_search) .pause(2000) .perform(); await driver.findElement(By.xpath("//button[@type='submit']")).click(); //== Kiểm tra đến trang tìm kiếm await checkListWeb(driver); } // == Ô sản phẩm: Điều hướng đến trang chi tiết sản phẩm async function goToProductDetail(driver, productNameClass) { var productUrl = driver.findElement(By.css(productNameClass)); await driver.actions() .move({ origin: productUrl }) .pause(1000) .press() .perform(); await productUrl.click(); await checkListWeb(driver); } // == Giỏ hàng: Nhập thông tin người dùng và gửi async function submitCartForm(driver) { await driver.findElement(By.xpath("//input[@name='user_info[name]']")).sendKeys(user_name); await driver.findElement(By.xpath("//input[@name='user_info[email]']")).sendKeys(user_email); await driver.findElement(By.xpath("//input[@name='user_info[mobile]']")).sendKeys(user_mobile); await driver.findElement(By.xpath("//input[@name='user_info[address]']")).sendKeys(user_address); await new Select(driver.findElement(By.xpath("//select[@name='user_info[province]']"))).selectByVisibleText(user_province); await new Select(driver.findElement(By.xpath("//select[@name='user_info[district]']"))).selectByVisibleText(user_district); await new Select(driver.findElement(By.xpath("//select[@name='user_info[ward]']"))).selectByVisibleText(user_ward); await driver.findElement(By.css("form[action='/send-cart']")).submit(); await checkListWeb(driver); } // Hiển thị bảng danh sách test async function checkListWeb(driver) { await driver.executeScript(CreateTableCheck); await driver.executeScript(checkSearch, check_list); await driver.executeScript(checkAddCart, check_list); await driver.executeScript(checkSendCart, check_list); } function CreateTableCheck() { var table_container = document.createElement('div'); table_container.id = 'js-table-container'; document.body.appendChild(table_container); $("#js-table-container").html(`
| Danh sách | Trạng thái |
|---|