ChatGPT与基于GUI的自动化测试

2024-09-10 13:01:44 浏览数 (4)

环境

  • Selenium 4.8.3
  • playwright 1.32.1
  • cypress 12.10.0

1 edge浏览器 selenium框架 百度查询测试代码

最基础问答

输入

使用edge浏览器结合selenium框架生成百度查询测试代码

ChatGPT回答

当使用Edge浏览器结合Selenium框架生成百度查询测试代码时,你可以使用以下Python代码示例:

代码语言:javascript复制
from msedge.selenium_tools import Edge, EdgeOptions    
# 创建Edge浏览器选项
options = EdgeOptions()
options.use_edge = True
# 使用Edge浏览器
driver = Edge(options=options)
# 打开百度网站
driver.get("https://www.baidu.com")
# 找到搜索框并输入关键词
search_box = driver.find_element_by_name("wd")
search_box.send_keys("Selenium with Edge browser")
search_box.submit()
# 等待搜索结果加载
driver.implicitly_wait(10)
# 关闭浏览器
driver.quit()

在这个示例中,我们首先导入Edge浏览器相关的模块,然后创建Edge浏览器选项并使用Edge浏览器创建一个WebDriver实例。接下来打开百度网站,找到搜索框并输入关键词"Selenium with Edge browser",然后提交搜索。最后等待搜索结果加载并关闭浏览器。

希望这个示例能够帮助你使用Edge浏览器结合Selenium框架生成百度查询测试代码!

运行代码

代码语言:javascript复制
ModuleNotFoundError: No module named 'msedge' 

结论

默认使用selenium3.X生成的代码

指定selenium版本

输入

使用edge浏览器结合selenium4.8.3版本生成百度查询测试代码

ChatGPT回答

当使用Selenium 4.8.3版本结合Edge浏览器生成百度查询测试代码时,你可以使用以下Python代码示例:

代码语言:javascript复制
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
# 使用Edge浏览器
driver = webdriver.Edge()
# 打开百度网站
driver.get("https://www.baidu.com")
# 找到搜索框并输入关键词
search_box = driver.find_element_by_name("wd")
search_box.send_keys("Selenium 4.8.3 with Edge browser")
search_box.send_keys(Keys.RETURN)
# 等待搜索结果加载
driver.implicitly_wait(10)    
# 关闭浏览器
driver.quit()

在这个示例中,我们首先导入Selenium库,然后使用Edge浏览器创建一个WebDriver实例。接下来打开百度网站,找到搜索框并输入关键词"Selenium 4.8.3 with Edge browser",然后按下回车键进行搜索。最后等待搜索结果加载并关闭浏览器。

希望这个示例对你有所帮助

运行代码

代码语言:javascript复制
AttributeError: 'WebDriver' object has no attribute 'find_element_by_name'

结论

由于find_element_by_name函数是selenium 3.X版本中的。在selenium4.X中支持。

指定定位函数所在的类

输入

使用edge浏览器结合selenium4.8.3版本生成百度查询测试代码。定位代码使用from selenium.webdriver.common.by import By类。

ChatGPT回答

以下是使用Selenium 4.8.3和Edge浏览器生成百度查询测试代码的示例,其中使用了from selenium.webdriver.common.by import By来进行元素定位:

代码语言:javascript复制
from selenium import webdriver
from selenium.webdriver.common.by import By
# 设置Edge浏览器驱动路径    
edge_driver_path = 'path_to_your_edge_driver'
# 创建Edge浏览器实例
driver = webdriver.Edge(executable_path=edge_driver_path)
# 打开百度首页
driver.get('https://www.baidu.com')
# 使用By类进行元素定位,并进行搜索操作
search_box = driver.find_element(By.ID, 'kw')  # 通过ID定位搜索框
search_box.send_keys('Selenium testing')  # 在搜索框中输入关键词
search_button = driver.find_element(By.ID, 'su')  # 通过ID定位搜索按钮
search_button.click()  # 点击搜索按钮
# 等待搜索结果加载完成
driver.implicitly_wait(10)
# 关闭浏览器
driver.quit()

在上述代码中,我们首先导入了By类,然后创建了Edge浏览器实例,并打开了百度首页。接着使用By.ID来定位搜索框和搜索按钮,并进行搜索操作。最后关闭了浏览器。您需要将path_to_your_edge_driver替换为实际的Edge浏览器驱动路径。希望这能帮助您生成百度查询测试代码!

修改代码

代码语言:javascript复制
edge_driver_path = 'path_to_your_edge_driver'

加上本机所在的edge driver的路径

代码语言:javascript复制
edge_driver_path = 'C:\Lib\msedgedriver.exe' 

然后加上断言

代码语言:javascript复制
assert "Selenium testing_百度搜索" == driver.title

代码变为

代码语言:javascript复制
from selenium import webdriver
from selenium.webdriver.common.by import By
# 设置Edge浏览器驱动路径
edge_driver_path = 'C:\Lib\msedgedriver.exe'
# 创建Edge浏览器实例
driver = webdriver.Edge(executable_path=edge_driver_path)
# 打开百度首页
driver.get('https://www.baidu.com')
# 使用By类进行元素定位,并进行搜索操作
search_box = driver.find_element(By.ID, 'kw')  # 通过ID定位搜索框
search_box.send_keys('Selenium testing')  # 在搜索框中输入关键词
search_button = driver.find_element(By.ID, 'su')  # 通过ID定位搜索按钮
search_button.click()  # 点击搜索按钮
# 等待搜索结果加载完成
driver.implicitly_wait(10)
# 关闭浏览器
driver.quit()

第一次运行代码

代码语言:javascript复制
warning (from warnings module):    
  File "C:UsersxiangDesktop1.py", line 6
    driver = webdriver.Edge(executable_path=edge_driver_path)
DeprecationWarning: executable_path has been deprecated, please pass in a Service object
Traceback (most recent call last):
  File "C:UsersxiangDesktop1.py", line 17, in
    assert "Selenium testing_百度搜索" == driver.title

修改

代码语言:javascript复制
AssertionError

在断言前加上打印语句

代码语言:javascript复制
print(driver.title)

输出

代码语言:javascript复制
百度一下,你就知道

修改

代码语言:javascript复制
driver.implicitly_wait(10)

改为

代码语言:javascript复制
time.sleep(3)
# 设置Edge浏览器驱动路径
edge_driver_path = 'C:\Lib\msedgedriver.exe'
# 创建Edge浏览器实例
driver = webdriver.Edge(executable_path=edge_driver_path)

改为

代码语言:javascript复制
driver = webdriver.Edge()

最终代码

代码语言:javascript复制
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
driver = webdriver.Edge()
# 打开百度首页
driver.get('https://www.baidu.com')
# 使用By类进行元素定位,并进行搜索操作
search_box = driver.find_element(By.ID, 'kw')  # 通过ID定位搜索框
search_box.send_keys('Selenium testing')  # 在搜索框中输入关键词
search_button = driver.find_element(By.ID, 'su')  # 通过ID定位搜索按钮
search_button.click()  # 点击搜索按钮
# 等待搜索结果加载完成
time.sleep(3)
assert "Selenium testing_百度搜索" == driver.title
# 关闭浏览器
driver.quit()代码

第二次运行代码

测试通过,并且没有warning。

结论

1.产生的driver.implicitly_wait(10)不起作用,改为强制等待time.sleep(3)

2.默认使用旧的webdriver方法

2使用edge浏览器 selenium4.8.3版本 京东商品查询测试代码,指定定位函数类。

查询商品

输入

使用edge浏览器结合selenium4.8.3版本生成京东商品查询测试代码,查询内容为巧克力。定位代码使用from selenium.webdriver.common.by import By类。

ChatGPT回答

当使用Selenium 4.8.3版本结合Edge浏览器进行京东商品查询测试时,可以使用以下代码。首先,确保已经安装了Microsoft Edge WebDriver,并且将其路径添加到系统环境变量中。

然后,可以使用以下Python代码来进行测试:

代码语言:javascript复制
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys    
import time
# 设置Edge浏览器驱动路径
edge_driver_path = 'path_to_edge_driver'  # 将路径替换为实际的Edge浏览器驱动路径
# 创建Edge浏览器实例
driver = webdriver.Edge(executable_path=edge_driver_path)
# 打开京东首页
driver.get("https://www.jd.com/")
# 定位搜索框并输入关键词
search_box = driver.find_element(By.ID, "key")  # 使用By类定位搜索框
search_box.send_keys("巧克力")
# 点击搜索按钮
search_button = driver.find_element(By.CLASS_NAME, "button")  # 使用By类定位搜索按钮
search_button.click()
# 等待页面加载
time.sleep(5)
# 打印搜索结果页面标题
print(driver.title)
# 关闭浏览器
driver.quit()

在上述代码中,我们首先通过webdriver.Edge创建了Edge浏览器实例,然后打开了京东首页。接着,我们使用By.ID和By.CLASS_NAME来定位搜索框和搜索按钮,分别输入关键词并点击搜索。最后,我们等待页面加载,打印搜索结果页面的标题,然后关闭浏览器。

请确保将path_to_edge_driver替换为实际的Edge浏览器驱动程序的路径。希望这可以帮助到您进行京东商品查询测试!

修改代码

代码语言:javascript复制
# 设置Edge浏览器驱动路径
edge_driver_path = 'path_to_edge_driver'  # 将路径替换为实际的Edge浏览器驱动路径
# 创建Edge浏览器实例
driver = webdriver.Edge(executable_path=edge_driver_path)

改为

代码语言:javascript复制
driver = webdriver.Edge()

加上断言

代码语言:javascript复制
assert "商品搜索 - 京东" in driver.title

运行代码

运行成功

最终代码

代码语言:javascript复制
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys    
import time
driver = webdriver.Edge()
# 打开京东首页
driver.get("https://www.jd.com/")
# 定位搜索框并输入关键词
search_box = driver.find_element(By.ID, "key")  # 使用By类定位搜索框
search_box.send_keys("巧克力")
# 点击搜索按钮
search_button = driver.find_element(By.CLASS_NAME, "button") #使用By类定位搜索按钮
search_button.click()
# 等待页面加载
time.sleep(5)
# 打印搜索结果页面标题
assert "商品搜索 - 京东" in driver.title
# 关闭浏览器
driver.quit()

查询商品并进入某个商品

输入

使用edge浏览器结合selenium4.8.3版本生成京东商品查询测试代码,查询内容为巧克力。查询后进入某个商品的详细页面,会产生一个新窗口,关闭老窗口,验证新窗口总是否存在文字:巧克力。定位代码使用from selenium.webdriver.common.by import By类。

ChatGPT

以下是使用Edge浏览器结合Selenium 4.8.3版本生成京东商品查询测试代码的示例,同时验证新窗口中是否存在文字“巧克力”。

代码语言:javascript复制
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
# 设置Edge浏览器驱动路径
edge_driver_path = 'your_edge_driver_path'
# 初始化Edge浏览器
driver = webdriver.Edge(executable_path=edge_driver_path)
# 打开京东首页
driver.get("https://www.jd.com/")
# 定位搜索框并输入关键词“巧克力”
search_box = driver.find_element(By.ID, "key")
search_box.send_keys("巧克力")
search_box.send_keys(Keys.ENTER)
# 等待搜索结果加载完成
time.sleep(3)
# 定位第一个商品并点击进入详细页面
first_product = driver.find_element(By.CSS_SELECTOR, ".gl-item").find_element(By.TAG_NAME, "a")
first_product.click()
# 获取所有窗口句柄
all_handles = driver.window_handles
# 关闭老窗口
driver.close()
# 切换到新窗口
driver.switch_to.window(all_handles[-1])
# 验证新窗口中是否存在文字“巧克力”
assert "巧克力" in driver.page_source, "新窗口中未找到文字“巧克力”"
# 关闭浏览器
driver.quit()

请将your_edge_driver_path替换为您的Edge浏览器驱动路径。这段代码会打开Edge浏览器,搜索京东首页上的巧克力商品,点击第一个商品进入详细页面,在新窗口中验证是否存在文字“巧克力”,最后关闭浏览器。

修改代码

代码语言:javascript复制
# 设置Edge浏览器驱动路径
edge_driver_path = 'your_edge_driver_path'
# 初始化Edge浏览器
driver =
webdriver.Edge(executable_path=edge_driver_path)

改为driver = webdriver.Edge()

运行

通过

3 Python edge浏览器 selenium4.8.3版本 POM,生成百度查询测试代码

默认

输入

使用edge浏览器结合selenium4.8.3版本,采用POM方法,生成百度查询测试代码

ChatGPT回答

首先,创建一个页面对象类,例如 BaiduSearchPage,该类用于封装百度搜索页面的元素和操作方法。

代码语言:javascript复制
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
           
public class BaiduSearchPage {    
    private WebDriver driver;
    @FindBy(name = "wd")
    private WebElement searchBox;
    @FindBy(id = "su")
    private WebElement searchButton;
    public BaiduSearchPage(WebDriver driver) {
        this.driver = driver;
        PageFactory.initElements(driver, this);
    }
    public void enterSearchText(String text) {
        searchBox.sendKeys(text);
    }
    public void clickSearchButton() {
        searchButton.click();
    }
}

创建一个测试类,例如 BaiduSearchTest,用于编写测试代码。

代码语言:javascript复制
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.edge.EdgeDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;    
public class BaiduSearchTest {
    private WebDriver driver;
    private BaiduSearchPage baiduSearchPage;
    @BeforeMethod
    public void setUp() {
        System.setProperty("webdriver.edge.driver", "path_to_edge_driver");
        driver = new EdgeDriver();
        driver.get("https://www.baidu.com");
        baiduSearchPage = new BaiduSearchPage(driver);
    }
    @Test
    public void testBaiduSearch() {
        baiduSearchPage.enterSearchText("Selenium");
        baiduSearchPage.clickSearchButton();
        // 添加断言或其他验证步骤
    }
    @AfterMethod
    public void tearDown() {
        driver.quit();
    }
}

在上述代码中,需要将 path_to_edge_driver 替换为您本地Edge浏览器驱动程序的路径。

结论

使用Java来实现,我们不去考虑代码正确性。

指定测试代码语言

输入

使用python语言 edge浏览器结合selenium4.8.3版本,采用POM方法,生成百度查询测试代码

ChatGPT回答

下面是使用Python语言、Selenium 4.8.3版本和Page Object Model (POM) 方法来编写百度查询测试代码的示例:

首先,创建一个名为 baidu_search_page.py 的页面对象类,用于封装百度搜索页面的元素和操作:

代码语言:javascript复制
from selenium.webdriver.common.by import By
class BaiduSearchPage:
    def __init__(self, driver):
        self.driver = driver
        self.search_box = (By.ID, 'kw')
        self.search_button = (By.ID, 'su')
    def enter_search_keyword(self, keyword):    
        self.driver.find_element(*self.search_box).send_keys(keyword)
    def click_search_button(self):
        self.driver.find_element(*self.search_button).click()

然后,创建一个名为 test_baidu_search.py 的测试用例类,用于执行百度查询测试:

代码语言:javascript复制
import unittest
from selenium import webdriver
from baidu_search_page import BaiduSearchPage
class TestBaiduSearch(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Edge(executable_path='path_to_your_edge_driver')
        self.driver.get('https://www.baidu.com')
        self.baidu_search_page = BaiduSearchPage(self.driver)
    def test_search(self):
        self.baidu_search_page.enter_search_keyword('Selenium testing')
        self.baidu_search_page.click_search_button()
        # 添加断言来验证搜索结果页面
    def tearDown(self):
        self.driver.quit()
if __name__ == "__main__":
    unittest.main()

在上述代码中,我们首先创建了一个名为 BaiduSearchPage 的页面对象类,用于封装百度搜索页面的元素和操作。然后创建了一个名为 TestBaiduSearch 的测试用例类,其中包含了 setUp 方法用于初始化测试环境,test_search 方法用于执行搜索测试,以及 tearDown 方法用于清理测试环境。最后,我们使用 unittest.main() 来执行测试用例。

您需要将 path_to_your_edge_driver 替换为实际的Edge浏览器驱动路径。这样就可以使用POM方法生成百度查询测试代码了。希望这能帮助到您!

修改

修改test_baidu_search.py

代码语言:javascript复制
self.driver = webdriver.Edge(executable_path='path_to_your_edge_driver')

改为

代码语言:javascript复制
self.driver = webdriver.Edge()

加上断言

代码语言:javascript复制
self.assertEqual("Selenium testing_百度搜索",self.driver.title)

运行

代码语言:javascript复制
F
===========================================================
FAIL: test_search (__main__.TestBaiduSearch.test_search)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:UsersxiangDesktoptest_baidu_search.py", line 13, in test_search
    self.assertEqual("Selenium testing_百度搜索",self.driver.title)
AssertionError: 'Selenium testing_百度搜索' != '百度一下,你就知道'
- Selenium testing_百度搜索    
  百度一下,你就知道
----------------------------------------------------------------------
Ran 1 test in 7.129s
FAILED (failures=1)

在断言前加上等待time.sleep(3)

运行代码

运行通过

最后代码

代码语言:javascript复制
import unittest,time
from selenium import webdriver
from baidu_search_page import BaiduSearchPage
class TestBaiduSearch(unittest.TestCase):
    def setUp(self):
        #self.driver = webdriver.Edge(executable_path='path_to_your_edge_driver')
        self.driver = webdriver.Edge()
        self.driver.get('https://www.baidu.com')
        self.baidu_search_page = BaiduSearchPage(self.driver)
    def test_search(self):
        self.baidu_search_page.enter_search_keyword('Selenium testing')
        self.baidu_search_page.click_search_button()    
        time.sleep(3)
        self.assertEqual("Selenium testing_百度搜索",self.driver.title)
    def tearDown(self):
        self.driver.quit()
if __name__ == "__main__":
unittest.main()

结论

ChatGPT对Selenium POM非常友好

4 python edge浏览器 selenium4.8.3 FOM方法,百度查询测试代码

默认

输入

用python语言 使用edge浏览器结合selenium4.8.3版本,采用FOM方法,生成百度查询测试代码

ChatGPT回答

当您提到"FOM"时,我认为您可能是指"Page Factory"。在Selenium中,Page Factory是一种用于初始化页面元素的方法。以下是使用Python语言、Edge浏览器、Selenium 4.8.3版本和Page Factory方法编写的百度查询测试代码示例:

首先,创建一个名为 baidu_search_page.py 的页面对象类,使用Page Factory来初始化页面元素:

代码语言:javascript复制
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.pagefactory import init_elements
class BaiduSearchPage:
    def __init__(self, driver):
        self.driver = driver
        init_elements(self.driver, self)
    search_box = (By.ID, 'kw')
    search_button = (By.ID, 'su')
    def enter_search_keyword(self, keyword):
        search_box = WebDriverWait(self.driver, 10).until(
            EC.visibility_of_element_located(self.search_box)
        )
        search_box.send_keys(keyword)
    def click_search_button(self):    
        search_button = WebDriverWait(self.driver, 10).until(
            EC.element_to_be_clickable(self.search_button)
        )
        search_button.click()

然后,创建一个名为 test_baidu_search.py 的测试用例类,用于执行百度查询测试:

代码语言:javascript复制
import unittest
from selenium import webdriver
from baidu_search_page import BaiduSearchPage
class TestBaiduSearch(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Edge(executable_path='path_to_your_edge_driver')
        self.driver.get('https://www.baidu.com')
        self.baidu_search_page = BaiduSearchPage(self.driver)
    def test_search(self):
        self.baidu_search_page.enter_search_keyword('Selenium testing')
        self.baidu_search_page.click_search_button()
        # 添加断言来验证搜索结果页面
    def tearDown(self):
        self.driver.quit()
if __name__ == "__main__":
    unittest.main() 

在上述代码中,我们使用了Page Factory方法来初始化页面元素,并在测试用例中执行了百度查询测试。您需要将 path_to_your_edge_driver 替换为实际的Edge浏览器驱动路径。

这样就可以使用Python语言、Edge浏览器、Selenium 4.8.3版本和Page Factory方法生成百度查询测试代码了。希望这能帮助到您!

运行

代码语言:javascript复制
…
ModuleNotFoundError: No module named 'selenium.webdriver.support.pagefactory'

修改

注释掉baidu_search_page.py文件中的

代码语言:javascript复制
from selenium.webdriver.support.pagefactory import init_elements

代码语言:javascript复制
init_elements(self.driver, self)

修改

代码语言:javascript复制
self.driver = webdriver.Edge(executable_path='path_to_your_edge_driver')

代码语言:javascript复制
self.driver = webdriver.Edge()

运行代码

运行通过

最终代码

baidu_search_page.py

代码语言:javascript复制
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
#from selenium.webdriver.support.pagefactory import init_elements
class BaiduSearchPage:
    def __init__(self, driver):
        self.driver = driver
        #init_elements(self.driver, self)
    search_box = (By.ID, 'kw')
    search_button = (By.ID, 'su')
    def enter_search_keyword(self, keyword):
        search_box = WebDriverWait(self.driver, 10).until(
            EC.visibility_of_element_located(self.search_box)
        )
        search_box.send_keys(keyword)
    def click_search_button(self):
        search_button = WebDriverWait(self.driver, 10).until(    
            EC.element_to_be_clickable(self.search_button)
        )
        search_button.click()
test_baidu_search.py
import unittest
from selenium import webdriver
from baidu_search_page import BaiduSearchPage
class TestBaiduSearch(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Edge()
        self.driver.get('https://www.baidu.com')
        self.baidu_search_page = BaiduSearchPage(self.driver)
    def test_search(self):
        self.baidu_search_page.enter_search_keyword('Selenium testing')
        self.baidu_search_page.click_search_button()
        # 添加断言来验证搜索结果页面
    def tearDown(self):
        self.driver.quit()
if __name__ == "__main__":
unittest.main()

结论

ChatGPT对Selenium FOM非常友好

5 edge浏览器 selenium4.8.3 HTML代码

默认

输入

使用edge浏览器结合selenium4.8.3版本对下面HTML代码产生的页面生成测试脚本

代码语言:javascript复制
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,
initial-scale=1">
<!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后!-->
<meta name="description" content="">
<meta name="author" content="">
<title>电子商务系统-登录</title>
<!-- Bootstrap core CSS -->
<link href="/static/css/signin.css"
rel="stylesheet">
<!-- Custom styles for this template -->
<link href="/static/css/bootstrap.min.css"
rel="stylesheet">
 <link
href="/static/css/my.css" rel="stylesheet">
 <script
type="text/javascript"
src="/static/js/sh256.js"></script>
 <script
type="text/javascript" >
 function
SHA256Password()
{
 document.forms["myForm"]["password"].value
= SHA256(document.forms["myForm"]["password"].value);
 return
true;
 }
</script>
</head>
<body>
<div class="container">
<form class="form-signin" name="myForm"
method="post" action="/login_action/"
enctype="multipart/form-data" onsubmit="return
SHA256Password()">
   <input type="hidden"
name="csrfmiddlewaretoken"
value="uwQOB9mHwqBm7faecgzOXi26r4wPz6e9Mip2rlGG9HBqcusud5mkHRa3e4qs7Lh6">
<h2 class="form-signin-heading">电子商务系统-登录</h2>
<p>
<label for="id_username">用户名:</label>
<input type="text" name="username"
maxlength="100" required id="id_username">

</p>
<p>
<label for="id_password">密码  :</label>
<input type="password" name="password" required
id="id_password">     
</p>
<p style="color:red"></p> <br>
<button class="btn btn-lg btn-primary btn-block"
type="submit">登录</button><br>
 <a
href="register">注册</a>
</form>
</div> <!-- /container -->
</body>
</html

ChatGPT回答

以下是使用Edge浏览器和Selenium 4.8.3版本编写的测试脚本,用于对给定HTML代码生成的页面进行测试。测试脚本将使用Selenium来模拟用户在页面上的操作,例如输入用户名和密码,然后点击登录按钮进行登录。

代码语言:javascript复制
from selenium import webdriver
from selenium.webdriver.common.by import By  
from selenium.webdriver.common.keys import Keys
import time
# 设置Edge浏览器驱动路径
edge_driver_path = 'path_to_your_edge_driver'
# 创建Edge浏览器实例
driver = webdriver.Edge(executable_path=edge_driver_path)
# 打开页面
driver.get('file:///path_to_your_html_file.html')
# 定位用户名输入框和密码输入框
username_input = driver.find_element(By.ID, 'id_username')
password_input = driver.find_element(By.ID, 'id_password')
# 输入用户名和密码
username_input.send_keys('your_username')
password_input.send_keys('your_password')
# 点击登录按钮
login_button = driver.find_element(By.CSS_SELECTOR, '.btn-primary')
login_button.click()
# 等待页面加载
time.sleep(5)
# 执行其他操作或断言来验证页面的行为和效果
# 关闭浏览器
driver.quit()

在上述代码中,您需要将 path_to_your_edge_driver 替换为实际的Edge浏览器驱动路径,将 file:///path_to_your_html_file.html 替换为实际的HTML文件路径,以及将 your_username 和 your_password 替换为实际的用户名和密码。

这样就可以使用Edge浏览器和Selenium 4.8.3版本生成测试脚本,对给定的HTML页面进行测试。希望这能帮助到您!

修改

代码语言:javascript复制
edge_driver_path = 'path_to_your_edge_driver'
# 创建Edge浏览器实例
driver = webdriver.Edge(executable_path=edge_driver_path)

改为

代码语言:javascript复制
driver = webdriver.Edge()

添加断言

代码语言:javascript复制
assert "电子商务系统" == driver.title "电子商务系统" == driver.title

由于本地代码运行速度很快,去掉等待

代码语言:javascript复制
# 等待页面加载
time.sleep(5)

修改用户名和密码数据

代码语言:javascript复制
username_input.send_keys('cindy')
password_input.send_keys('123456')

运行代码

运行通过

最终代码

代码语言:javascript复制
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
# 设置Edge浏览器驱动路径
# 创建Edge浏览器实例
driver = webdriver.Edge()
# 打开页面
driver.get('http://127.0.0.1:8000')
# 定位用户名输入框和密码输入框
username_input = driver.find_element(By.ID, 'id_username')
password_input = driver.find_element(By.ID, 'id_password')
# 输入用户名和密码
username_input.send_keys('cindy')
password_input.send_keys('123456')
# 点击登录按钮
login_button = driver.find_element(By.CSS_SELECTOR, '.btn-primary')
login_button.click()
# 等待页面加载
# 执行其他操作或断言来验证页面的行为和效果
assert "电子商务系统" == driver.title  
# 关闭浏览器
driver.quit()

结论

ChatGPT对HTML产生selenium还是比较有效的。

6 chrome浏览器 playwright,生成百度查询测试代码

默认

输入

使用chrome浏览器结合playwright工具,生成百度查询测试代码

ChatGPT回答

当结合Chrome浏览器和Playwright工具时,可以使用如下Python代码生成一个简单的百度查询测试:

代码语言:javascript复制
from playwright.sync_api import sync_playwright
# 启动浏览器
with sync_playwright() as p:
    browser = p.chromium.launch()
    context = browser.new_context()
    # 打开百度首页  
    page = context.new_page()
    page.goto("https://www.baidu.com")
    # 在搜索框中输入关键词并点击搜索按钮
    search_input = page.locator("[name='wd']")
    search_button = page.locator("[id='su']")
    search_input.fill("Hello, World!")
    search_button.click()
    # 等待搜索结果加载
    page.wait_for_load_state("load")
    # 输出搜索结果标题
    print(page.title())
    # 关闭浏览器
    browser.close()

以上代码使用Playwright工具结合Chrome浏览器,打开百度首页,输入关键词并点击搜索按钮,然后等待搜索结果加载并输出搜索结果的标题。您可以将此代码保存为Python文件并执行以进行测试。

运行代码

百度一下,你就知道

修改代码

代码语言:javascript复制
page.wait_for_load_state("load")

修改

代码语言:javascript复制
page.wait_for_selector('span[class="hint_PIwZX c_font_2AD7M"]',state='attached')

输出

代码语言:javascript复制
Hello, World!_百度搜索,正确

最终结论

page.wait_for_load_state("load")不起作用

ChatGPT对playwriter非常友好

7 chrome浏览器 playwright HTML代码

默认

输入

使用edge浏览器结合playwright版本,同步的方法对下面HTML代码产生的页面生成测试脚本

代码语言:javascript复制
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible"
content="IE=edge">
<meta name="viewport" content="width=device-width,
initial-scale=1">
<!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后!-->
<meta name="description" content="">
<meta name="author" content="">
<title>电子商务系统-登录</title>
<!-- Bootstrap core CSS -->
<link href="/static/css/signin.css"
rel="stylesheet">
<!-- Custom styles for this template -->
<link href="/static/css/bootstrap.min.css"
rel="stylesheet">
 <link
href="/static/css/my.css" rel="stylesheet">
 <script
type="text/javascript"
src="/static/js/sh256.js"></script>
 <script
type="text/javascript" >
 function
SHA256Password()
{
 document.forms["myForm"]["password"].value
= SHA256(document.forms["myForm"]["password"].value);
 return
true;
 }
</script>
</head>
<body>
<div class="container">
<form class="form-signin" name="myForm"
method="post" action="/login_action/"
enctype="multipart/form-data" onsubmit="return
SHA256Password()">
   <input type="hidden"
name="csrfmiddlewaretoken"
value="uwQOB9mHwqBm7faecgzOXi26r4wPz6e9Mip2rlGG9HBqcusud5mkHRa3e4qs7Lh6">
<h2 class="form-signin-heading">电子商务系统-登录</h2>
<p>
<label for="id_username">用户名:</label>
<input type="text" name="username"
maxlength="100" required id="id_username">

</p>
<p>
<label for="id_password">密码  :</label>
<input type="password" name="password" required
id="id_password">     
</p>
<p style="color:red"></p> <br>
<button class="btn btn-lg btn-primary btn-block"
type="submit">登录</button><br>
 <a
href="register">注册</a>
</form>
</div> <!-- /container -->
</body>
</html>

ChatGPT回答

以下是使用Edge浏览器和Playwright编写的测试脚本,用于对给定的HTML代码生成的页面进行测试。测试脚本将使用Playwright来模拟用户在页面上的操作,例如输入用户名和密码,然后点击登录按钮进行登录。

代码语言:javascript复制
const { chromium } = require('playwright');
(async () => {
  // 启动Edge浏览器实例
  const browser = await chromium.launch({ headless: false });
    // 创建新的页面
  const context = await browser.newContext();
  const page = await context.newPage();
  // 打开页面
  await page.goto('file:///path_to_your_html_file.html');
  // 输入用户名和密码
  await page.fill('input[name="username"]', 'your_username');
  await page.fill('input[name="password"]', 'your_password');
  // 点击登录按钮  
  await page.click('button[type="submit"]');
  // 等待页面加载
  await page.waitForLoadState('networkidle');
  // 执行其他操作或断言来验证页面的行为和效果
  // 关闭浏览器
  await browser.close();
})();

在上述代码中,您需要将 file:///path_to_your_html_file.html 替换为实际的HTML文件路径,将 your_username 和 your_password 替换为实际的用户名和密码。

这样就可以使用Edge浏览器和Playwright生成测试脚本,对给定的HTML页面进行测试。希望这能帮助到您!

结论

默认使用的不是python语言

设置脚本语言

输入

使用edge浏览器结合playwright版本,python脚本对下面HTML代码产生的页面生成测试脚本

代码语言:javascript复制
<!DOCTYPE html> <html
lang="zh-CN"> <head> <meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,
initial-scale=1"> <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后!-->
<meta name="description" content=""> <meta
name="author" content=""> <title>电子商务系统-登录</title> <!-- Bootstrap core CSS
--> <link href="/static/css/signin.css"
rel="stylesheet"> <!-- Custom styles for this template -->
<link href="/static/css/bootstrap.min.css" rel="stylesheet">
<link href="/static/css/my.css" rel="stylesheet">
<script type="text/javascript"
src="/static/js/sh256.js"></script> <script
type="text/javascript" > function SHA256Password() { document.forms["myForm"]["password"].value
= SHA256(document.forms["myForm"]["password"].value);
return true; } </script> </head> <body> <div
class="container"> <form class="form-signin"
name="myForm" method="post"
action="/login_action/" enctype="multipart/form-data"
onsubmit="return SHA256Password()"> <input
type="hidden" name="csrfmiddlewaretoken"
value="uwQOB9mHwqBm7faecgzOXi26r4wPz6e9Mip2rlGG9HBqcusud5mkHRa3e4qs7Lh6">
<h2 class="form-signin-heading">电子商务系统-登录</h2> <p> <label for="id_username">用户名:</label> <input type="text"
name="username" maxlength="100" required
id="id_username"> </p> <p> <label
for="id_password">密码 :</label>
<input type="password" name="password" required
id="id_password"> </p> <p
style="color:red"></p> <br> <button class="btn
btn-lg btn-primary btn-block" type="submit">登录</button><br> <a href="register">注册</a> </form> </div> <!-- /container -->
</body> </html>

ChatGPT回答

以下是使用Playwright库编写的Python测试脚本,用于对给定的HTML代码生成的页面进行测试。

代码语言:javascript复制
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()
    page.goto('data:text/html,'   '''
    <!DOCTYPE html>
        <html lang="zh-CN">
          <head>
            <meta charset="utf-8">
            <meta http-equiv="X-UA-Compatible" content="IE=edge">
            <meta name="viewport" content="width=device-width, initial-scale=1">
            <title>电子商务系统-登录</title>
            <link href="/static/css/signin.css" rel="stylesheet"> 
            <link href="/static/css/bootstrap.min.css" rel="stylesheet">
            <link href="/static/css/my.css" rel="stylesheet">
            <script type="text/javascript" src="/static/js/sh256.js"></script>
            <script type="text/javascript">
              function SHA256Password() {
                document.forms["myForm"]["password"].value = SHA256(document.forms["myForm"]["password"].value);
                return true;
              }
            </script>
          </head>
          <body>
            <div class="container">
              <form class="form-signin" name="myForm" method="post" action="/login_action/" enctype="multipart/form-data" onsubmit="return SHA256Password()">
                <input type="hidden" name="csrfmiddlewaretoken" value="uwQOB9mHwqBm7faecgzOXi26r4wPz6e9Mip2rlGG9HBqcusud5mkHRa3e4qs7Lh6">
                <h2 class="form-signin-heading">电子商务系统-登录</h2>
                <p>
                  <label for="id_username">用户名:</label>
                  <input type="text" name="username" maxlength="100" required id="id_username">
                </p> 
                <p>
                  <label for="id_password">密码  :</label>
                  <input type="password" name="password" required id="id_password">     
                </p>
                <p style="color:red"></p> <br>
                <button class="btn btn-lg btn-primary btn-block" type="submit">登录</button><br>
                <a href="/register">注册</a>
              </form>
            </div>
          </body>
        </html>
    ''')

    page.fill('input[name="username"]', 'your_username')
    page.fill('input[name="password"]', 'your_password')
    page.click('button[type="submit"]')
    # 等待页面加载
    page.wait_for_load_state('load')
    # 执行其他操作或断言来验证页面的行为和效果
    # 关闭浏览器
    browser.close()

在上述代码中,您需要将 your_username 和 your_password 替换为实际的用户名和密码。这段代码将使用Playwright和Chromium浏览器来模拟用户在页面上的操作,输入用户名和密码,然后点击登录按钮进行登录。希望这能帮助到您!

结论

测试脚本为Python语言,不指名目标地址,使用给定的HTML代码

指名目标地址

输入

使用edge浏览器结合playwright版本,异步的方法对下面HTML代码产生的页面生成测试脚本

目标地址:127.0.0.1:8000

代码语言:javascript复制
<!DOCTYPE html> <html
lang="zh-CN"> <head> <meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,
initial-scale=1"> <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后!-->
<meta name="description" content=""> <meta
name="author" content=""> <title>电子商务系统-登录</title> <!-- Bootstrap core CSS
--> <link href="/static/css/signin.css"
rel="stylesheet"> <!-- Custom styles for this template -->
<link href="/static/css/bootstrap.min.css" rel="stylesheet">
<link href="/static/css/my.css" rel="stylesheet">
<script type="text/javascript"
src="/static/js/sh256.js"></script> <script
type="text/javascript" > function SHA256Password() { document.forms["myForm"]["password"].value
= SHA256(document.forms["myForm"]["password"].value);
return true; } </script> </head> <body> <div
class="container"> <form class="form-signin"
name="myForm" method="post"
action="/login_action/" enctype="multipart/form-data"
onsubmit="return SHA256Password()"> <input
type="hidden" name="csrfmiddlewaretoken"
value="uwQOB9mHwqBm7faecgzOXi26r4wPz6e9Mip2rlGG9HBqcusud5mkHRa3e4qs7Lh6">
<h2 class="form-signin-heading">电子商务系统-登录</h2> <p> <label for="id_username">用户名:</label> <input type="text"
name="username" maxlength="100" required
id="id_username"> </p> <p> <label
for="id_password">密码 :</label>
<input type="password" name="password" required
id="id_password"> </p> <p
style="color:red"></p> <br> <button class="btn
btn-lg btn-primary btn-block" type="submit">登录</button><br> <a href="register">注册</a> </form> </div> <!-- /container -->
</body> </html>

输出

以下是使用Edge浏览器和Playwright编写的异步测试脚本,用于对给定的HTML代码生成的页面进行测试。

代码语言:javascript复制
import asyncio
from playwright.async_api import async_playwright
async def run():
    async with async_playwright() as p:
        browser = await p.chromium.launch(headless=False)  
        context = await browser.new_context()
        page = await context.new_page()
        await page.goto('http://127.0.0.1:8000')  # 请将目标地址替换为实际的地址
        await page.fill('input[name="username"]', 'your_username')
        await page.fill('input[name="password"]', 'your_password')
        await page.click('button[type="submit"]')
        # 等待页面加载
        await page.wait_for_load_state('load')
        # 执行其他操作或断言来验证页面的行为和效果
        # 关闭浏览器
        await browser.close()
asyncio.run(run())

在上述代码中,您需要将 http://127.0.0.1:8000 替换为实际的目标地址,同时将 your_username 和 your_password 替换为实际的用户名和密码。这段代码将使用Playwright和Edge浏览器来模拟用户在页面上的操作,输入用户名和密码,然后点击登录按钮进行登录。希望这能帮助到您!

修改代码

修改测试数据

代码语言:javascript复制
await page.fill('input[name="username"]', 'cindy')
await page.fill('input[name="password"]', '123456')

加上断言

代码语言:javascript复制
assert await page.text_content('a[href="/user_info/"]') == 'cindy'

运行代码

通过

最终代码

代码语言:javascript复制
import asyncio
from playwright.async_api import async_playwright
async def run():
    async with async_playwright() as p:
        browser = await p.chromium.launch(headless=False)
        context = await browser.new_context()
        page = await context.new_page()
        await page.goto('http://127.0.0.1:8000')  # 请将目标地址替换为实际的地址
        await page.fill('input[name="username"]', 'cindy')
        await page.fill('input[name="password"]', '123456')
        await page.click('button[type="submit"]')
        # 等待页面加载
        await page.wait_for_selector('#id',state='attached')
        #await page.wait_for_load_state('load')
        # 执行其他操作或断言来验证页面的行为和效果
        #await print(page.text_content('a[href="/user_info/"]'))  
        assert await page.text_content('a[href="/user_info/"]') == 'cindy'
        # 关闭浏览器
        await browser.close()
asyncio.run(run())

最终结论

chrome浏览器 playwright HTML代码需要主机名脚本语言和测试目标的URL

8 chrome浏览器 cypress,生成百度查询测试代码

默认

输入

使用chrome浏览器结合cypress工具,生成百度查询测试代码

ChatGPT回答

Cypress是一个用于编写端到端测试的现代化前端测试工具,它可以与Chrome浏览器结合使用。以下是一个简单的示例,演示如何使用Cypress编写一个百度查询测试代码。

首先,确保您已经安装了Node.js和npm。然后,按照以下步骤操作:

在您的项目目录下,通过命令行工具安装Cypress:

代码语言:javascript复制
npm install cypress --save-dev

安装完毕后,在命令行中输入以下命令以打开Cypress测试运行器:

代码语言:javascript复制
npx cypress open

在Cypress测试运行器中创建一个新的测试文件,比如 baidu_search_spec.js。

在 baidu_search_spec.js 文件中编写以下测试代码:

代码语言:javascript复制
describe('百度搜索', () => {
  it('搜索Cypress测试', () => {
    cy.visit('https://www.baidu.com') // 访问百度首页
    cy.get('#kw').type('Cypress测试') // 在搜索框中输入关键字
    cy.get('#su').click() // 点击搜索按钮
    // 添加断言来验证搜索结果页面
  })
})

在上述代码中,cy.visit 用于访问百度首页,cy.get 用于定位页面元素并进行操作,比如输入文本和点击按钮。您可以根据实际情况添加其他断言来验证搜索结果页面。

保存 baidu_search_spec.js 文件后,回到Cypress测试运行器,您将看到 baidu_search_spec.js 测试用例已经出现在列表中。

点击运行测试用例,Cypress将会打开Chrome浏览器并执行测试。

通过上述步骤,您可以使用Chrome浏览器结合Cypress工具生成百度查询测试代码。希望这能帮助到您!

修改代码

加上断言

代码语言:javascript复制
// 添加断言来验证搜索结果页面
cy.get('a[name="tj_settingicon"]').should('contain', '设置')

运行代码

运行通过

结论

ChatGPT对Cypress非常友好

9 chrome浏览器 cypress HTML代码

默认

输入

使用edge浏览器结合cypress对下面HTML代码产生的页面生成测试脚本

代码语言:javascript复制
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible"
content="IE=edge">
<meta name="viewport" content="width=device-width,
initial-scale=1">
<!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后!-->
<meta name="description" content="">
<meta name="author" content="">
<title>电子商务系统-登录</title>
<!-- Bootstrap core CSS -->
<link href="/static/css/signin.css"
rel="stylesheet">
<!-- Custom styles for this template -->
<link href="/static/css/bootstrap.min.css"
rel="stylesheet">
 <link
href="/static/css/my.css" rel="stylesheet">
 <script
type="text/javascript"
src="/static/js/sh256.js"></script>
 <script
type="text/javascript" >
 function
SHA256Password()
{
 document.forms["myForm"]["password"].value
= SHA256(document.forms["myForm"]["password"].value);
 return
true;
 }
</script>
</head>
<body>
<div class="container">
<form class="form-signin" name="myForm"
method="post" action="/login_action/"
enctype="multipart/form-data" onsubmit="return SHA256Password()">
   <input type="hidden"
name="csrfmiddlewaretoken"
value="uwQOB9mHwqBm7faecgzOXi26r4wPz6e9Mip2rlGG9HBqcusud5mkHRa3e4qs7Lh6">
<h2 class="form-signin-heading">电子商务系统-登录</h2>
<p>
<label for="id_username">用户名:</label>
<input type="text" name="username"
maxlength="100" required id="id_username">

</p>
<p>
<label for="id_password">密码  :</label>
<input type="password" name="password" required
id="id_password">     
</p>
<p style="color:red"></p> <br>
<button class="btn btn-lg btn-primary btn-block"
type="submit">登录</button><br>
 <a
href="register">注册</a>
</form>
</div> <!-- /container -->
</body>
</html>

ChatGPT回答

Cypress是一个基于JavaScript的端到端测试框架,无法直接使用Edge浏览器进行测试。Cypress自带了一个基于Chromium的浏览器,因此您可以使用Cypress来对给定的HTML页面进行测试。

以下是一个简单的Cypress测试脚本示例,用于对给定的HTML页面进行测试:

代码语言:javascript复制
describe('电子商务系统登录页面测试', () => {
  it('登录测试', () => {
    cy.visit('http://127.0.0.1:8000')  // 请将目标地址替换为实际的地址
    cy.get('input[name="username"]').type('your_username')  // 将 your_username 替换为实际的用户名
    cy.get('input[name="password"]').type('your_password')  // 将 your_password 替换为实际的密码
    cy.get('button[type="submit"]').click()
    // 执行其他断言来验证页面的行为和效果
  })
})

在上述代码中,您需要将 http://127.0.0.1:8000 替换为实际的目标地址,同时将 your_username 和 your_password 替换为实际的用户名和密码。这段代码将使用Cypress来模拟用户在页面上的操作,输入用户名和密码,然后点击登录按钮进行登录。

希望这能帮助到您!如果您有其他问题,请随时告诉我。

修改代码

加上断言

代码语言:javascript复制
// 添加断言来验证搜索结果页面
cy.get('a[href="/user_info/"]').should('contain', 'cindy')

设置参数

代码语言:javascript复制
cy.get('input[name="username"]').type('cindy')  //将 your_username 替换为实际的用户名
cy.get('input[name="password"]').type('123456')  //将 your_password 替换为实际的密码

运行代码

通过

最终代码

代码语言:javascript复制
describe('电子商务系统登录页面测试', () => {
  it('登录测试', () => {
    cy.visit('http://127.0.0.1:8000')  // 请将目标地址替换为实际的地址
    cy.get('input[name="username"]').type('cindy')  // 将 your_username 替换为实际的用户名
    cy.get('input[name="password"]').type('123456')  // 将 your_password 替换为实际的密码
    cy.get('button[type="submit"]').click()
    // 执行其他断言来验证页面的行为和效果
    cy.get('a[href="/user_info/"]').should('contain', 'cindy')
  })  
})

最终结论

chrome浏览器 cypress HTML代码需要主机名脚本语言和测试目标的URL

0 人点赞