用Python里的selenium对购物网站进行测试

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()

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7610748
  • 这篇博客你也可以参考下:爬虫?还是自动化?Python使用Selenium自动进行百度搜索
  • 您还可以看一下 李晓鹏老师的【2021】Python3+Selenium3自动化测试(不含框架)课程中的 浏览器的操作小节, 巩固相关知识点
  • 除此之外, 这篇博客: python爬虫——使用selenium爬取知网文献相关信息中的 3. 首先进入知网后,选择开发工具,建议放在右边,之后再点击图中红框的东东,然后刷新一下网页就切换到手机端了 部分也许能够解决你的问题。
  • 以下回答由chatgpt基于相关博客总结生成:

    我将为您提供使用Python中的selenium库实现购物网站测试流程的解决方案:

    首先,确保您已经在本地安装了selenium库,并且已经下载了对应的浏览器驱动程序(如ChromeDriver)。

    以下是实现该测试流程的步骤和代码示例:

    1. 导入所需的库和模块:
    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
    
    1. 创建一个webdriver实例,指定浏览器驱动程序的路径(请根据您的实际情况调整路径):
    driver = webdriver.Chrome('/path/to/chromedriver')
    
    1. 打开网站:
    driver.get('http://49.232.5.103')
    
    1. 点击“真皮女包”链接:
    wait = WebDriverWait(driver, 10)
    women_bags_link = wait.until(EC.element_to_be_clickable((By.LINK_TEXT, '真皮女包')))
    women_bags_link.click()
    
    1. 检查搜索到的产品是否包含关键字"电视":
    products = driver.find_elements(By.CLASS_NAME, 'product')
    for product in products:
        title = product.find_element(By.CLASS_NAME, 'title').text
        assert '电视' in title, '产品标题不包含关键字"电视"'
    
    1. 确保每个产品的标题和价格都正确:
    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元'
    
    1. 确保每个产品的图片可点击且能正确显示:
    for product in products:
        image = product.find_element(By.CLASS_NAME, 'image')
        image.click()
        # 执行进一步的操作,例如检查是否显示了产品详情页
        # ...
    
        # 返回到产品列表页
        driver.back()
    
    1. 点击产品后,进入对应的产品详情页:
    for product in products:
        title = product.find_element(By.CLASS_NAME, 'title')
        title.click()
        # 执行进一步的操作,例如检查是否成功进入了产品详情页
        # ...
    
        # 返回到产品列表页
        driver.back()
    
    1. 关闭浏览器:
    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()