import unittest
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By
class TestIweb(unittest.TestCase):
#修改密码
def test_update_pwd(self):
driver = webdriver.Edge()
driver.maximize_window()
sleep(3)
driver.get("http://49.232.5.103")
sleep(3)
driver.find_element(By.LINK_TEXT,"登录").click()
sleep(3)
driver.find_element(By.LINK_TEXT,"忘记密码").click()
sleep(3)
driver.find_element(By.NAME, "username").send_keys("liulaoshi")
sleep(3)
driver.find_element(By.NAME, "email").send_keys("123@qq.com")
sleep(3)
title = driver.title
self.assertEqual("修改密码",title)
sleep(5)
driver.quit()
def test_new(self):
driver = webdriver.Edge()
driver.maximize_window()
sleep(3)
driver.get("http://49.232.5.103")
el_a = driver.find_element(By.CSS_SELECTOR,".red [href='/index.php?controller=site&action=products&id=67']")
title = el_a[1].getArribute("title")
self.assertEqual("2014韩版爆款双肩包时尚韩版学院风情真皮女包休闲包",title)
price = driver.find_element(By.CSS_SELECTOR,
".red li:has([href='/index.php?controller=site&action=products&id=67']) b").text
self.assertNotEqual("",price)
self.assertIsNotNone(price)
self.assertGreater(float(price.split("¥")[1]),1)
el_a[1].click()
sleep(3)
click_title = driver.find_element(By.CSS_SELECTOR,".summary>h2").text
self.assertEqual(title,click_title)
sleep(5)
driver.quit()
改成下面的就可以了,里面有注释
def test_new(self):
driver = webdriver.Edge()
driver.maximize_window()
#sleep(3)
driver.get("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")
#改为find_elements,防止找不对对象出错
el_a = driver.find_elements(By.CSS_SELECTOR,"a[href='/index.php?controller=site&action=products&id=67']")
if len(el_a)==0:
print('页面中不存在指定css选择器dom')
return
title = el_a[0].get_attribute("title")
#print(title)
self.assertEqual("2014韩版爆款双肩包时尚韩版学院风情真皮女包休闲包",title)
goodsItems=el_a[1].find_element(By.XPATH,'../..')##找到li节点
#通过父节点定位加个节点,下面那个选择器错的
price=goodsItems.find_element(By.CSS_SELECTOR,'.price').text.strip()
#price = driver.find_element(By.CSS_SELECTOR,
# ".red li:has([href='/index.php?controller=site&action=products&id=67']) b").text
self.assertNotEqual("",price)
self.assertIsNotNone(price)
self.assertGreater(float(price.split("¥")[1]),1)
el_a[1].click()
sleep(3)
click_title = driver.find_element(By.CSS_SELECTOR,".summary>h2").text
self.assertEqual(title,click_title)
sleep(5)
driver.quit()
el_a[1].getArribute("title") 改为 el_a.get_attribute("title")。el_a[1].click() 改为el_a.click() 试一下
不知道你这个问题是否已经解决, 如果还没有解决的话:这里,我们将使用Python的selenium模块对某个网站的账户进行自动化测试。