环境
- 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:\Users\xiang\Desktop\1.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:\Users\xiang\Desktop\1.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:\Users\xiang\Desktop\test_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 。