对http://49.232.5.103进行测试
点击真皮女包
检查每个搜索产品,标题全部包含 电视 关键字
标题、价格正确(非空、非null、低于1元)
图片 可点 可显示
点击之后,进入到对应的产品详情页
那不是selenium直接访问网址
http://49.232.5.103/index.php?controller=site&action=search_list&word=%E7%9C%9F%E7%9A%AE%E5%A5%B3%E5%8C%85
就好了,上个问题主要错误是dom结构题注没搞清楚,用错了选择器,参考上个问题中我的回复,修改了
整个列表产品检查参考下面的代码
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Edge()
driver.maximize_window()
driver.get("http://49.232.5.103/index.php?controller=site&action=pro_list&cat=3")
products=driver.find_elements(By.CSS_SELECTOR,'li[name="goodsItems"]')
for item in products:
href=item.find_element(By.CSS_SELECTOR,'a').get_attribute('href')
title=item.find_element(By.CSS_SELECTOR,'.title a').text.strip()
if not title:
print(href,'产品标题为空')
continue
price=item.find_element(By.CSS_SELECTOR,'.price').text.strip()
price=price.split("¥")[1]
if not price:
print(href,title,'产品价格为空')
continue
price=float(price)
if price<1:
print(href,title,'价格小于1元')
input('输入任意字符回车关闭浏览器...')
driver.quit()
不知道你这个问题是否已经解决, 如果还没有解决的话:我将为您提供使用Python中的selenium库实现购物网站测试流程的解决方案:
首先,确保您已经在本地安装了selenium库,并且已经下载了对应的浏览器驱动程序(如ChromeDriver)。
以下是实现该测试流程的步骤和代码示例:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
driver = webdriver.Chrome('/path/to/chromedriver')
driver.get('http://49.232.5.103')
wait = WebDriverWait(driver, 10)
women_bags_link = wait.until(EC.element_to_be_clickable((By.LINK_TEXT, '真皮女包')))
women_bags_link.click()
products = driver.find_elements(By.CLASS_NAME, 'product')
for product in products:
title = product.find_element(By.CLASS_NAME, 'title').text
assert '电视' in title, '产品标题不包含关键字"电视"'
for product in products:
title = product.find_element(By.CLASS_NAME, 'title').text
price = product.find_element(By.CLASS_NAME, 'price').text
assert title, '产品标题为空'
assert price, '产品价格为空'
assert float(price) < 1.0, '产品价格大于等于1元'
for product in products:
image = product.find_element(By.CLASS_NAME, 'image')
image.click()
# 执行进一步的操作,例如检查是否显示了产品详情页
# ...
# 返回到产品列表页
driver.back()
for product in products:
title = product.find_element(By.CLASS_NAME, 'title')
title.click()
# 执行进一步的操作,例如检查是否成功进入了产品详情页
# ...
# 返回到产品列表页
driver.back()
driver.quit()
请根据您的具体需求和网站的实际情况调整代码中的选择器和操作。
如果您在实施过程中遇到任何问题或错误,欢迎随时提问。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# 创建一个新的浏览器实例
driver = webdriver.Firefox()
# 访问网页
driver.get("http://49.232.5.103")
# 点击 "真皮女包" 链接
driver.find_element_by_link_text("真皮女包").click()
# 等待页面加载
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CLASS_NAME, "product_class"))
)
# 获取所有产品
products = driver.find_elements_by_class_name("product_class")
# 检查每个产品
for product in products:
title = product.find_element_by_class_name("product_title").text
price = product.find_element_by_class_name("product_price").text
image = product.find_element_by_tag_name("img")
# 检查标题是否包含 "电视" 关键字
assert "电视" in title
# 检查价格是否正确
assert price != "" and price != "null" and float(price) > 1
# 检查图片是否可点击和可显示
assert image.is_displayed()
assert image.is_enabled()
# 点击进入产品详情页
product.click()
# 返回到产品列表页
driver.back()
# 关闭浏览器
driver.quit()