selenium - python 总结

本文介绍了一种使用Selenium进行网易相册网站自动化测试的方法。从登录到浏览相册及图片,再到评论和删除照片等操作,实现了全流程自动化。通过Python的unittest框架组织测试用例,确保了测试流程的稳定性和可靠性。
# coding:utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import unittest


class Test_Photo(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.baseUrl = "http://photo.163.com"
        #设置等待时间,防止页面未加载完成脚本提示异常
        self.driver.implicitly_wait(30)
        self.verificationErrors = []

    def test_WebDriverTest1(self):
        #打开一个网址
        driver = self.driver
        driver.get(self.baseUrl + "/")

        #输入用户名
        #by XPath
        driver.find_element_by_xpath("//input[@name='username']").clear()
        driver.find_element_by_xpath("//input[@name='username']").send_keys("angel-zhe@163.com")
        driver.find_element_by_xpath("//input[@name='username']").send_keys(Keys.ENTER)

        #输入密码
        #by name
        driver.find_element_by_name("password").clear()
        driver.find_element_by_name("password").send_keys("xtrrk0707")

        #点击登录
        #by id
        driver.find_element_by_id("photo_index_login").click()

        #获取页面Title
        #by js
        print driver.title

        #进入我的相册
        #by Xpath
        driver.find_element_by_css_selector("span.name").click()
        # driver.find_element_by_xpath("//div[@id='J-loginMod']/div/a[1]/span[1]").click()

        #点击  创建相册
        #by linkText
        driver.find_element_by_link_text("创建相册").click()

        #输入相册名称
        #by name
        driver.find_element_by_name("fm-0").clear()
        driver.find_element_by_name("fm-0").send_keys("new ablum2")
        #by Xpath
        #driver.find_element_by_xpath("//input[@name='fm-0']").clear()
        #driver.find_element_by_xpath("//input[@name='fm-0']").send_keys("new ablum")

        #选择私人相册
        driver.find_element_by_xpath("(//input[@name='fm-2'])[5]").click()

        #点击确定 两种方式
        #by css
        driver.find_element_by_css_selector("button.ui-btn.ui-btn-sub0").click()
        driver.implicitly_wait(10)

        #点击返回
        #by linkText
        driver.find_element_by_link_text("<<返回").click()

        #选择aaa分类
        #by css
        #select = driver.find_element_by_css_selector("select.fc5.bdwa")
        #/选择的三种不同实现
        #select.select_by_value("aaa")
        #select.select_by_index(1)
        #select.select_by_visible_text("aaa")

        #以上这个分类操作方法因为界面问题,还没有尝试去验证Select方法,以下经Link_Text方法操作
        #by link_Text
        driver.find_element_by_link_text("分类").click()
        driver.find_element_by_link_text("全部相册").click()
        driver.implicitly_wait(10)

        #打开相册
        #by Xpath
        driver.find_element_by_xpath("//img[@title='我的相册 ']").click()

        #打开某张照片
        #by Css
        driver.find_element_by_css_selector("div.item.on > div.ln.ln0 > a > img.ztag201008041230345").click()

        #下一张浏览照片
        #by Css
        driver.find_element_by_css_selector("div.ibox.right-img > img.ztag201008041230345").click()

        #输入评论
        #/因为评论框放在一个iframe中,所以要切换到iframe中,结束后将焦点切换回去
        #by tagName
        driver.switch_to_frame(driver.find_element_by_tag_name("iframe"))
        activeElementid = driver.switch_to_active_element().get_attribute("id")
        driver.find_element_by_id(activeElementid).sendKeys("评论内容!")
        driver.switch_to_default_content()

        #点击 发表,两种方式
        #by className
        driver.find_element_by_class_name("ui-btn-main0").click()
        #by Xpath
        driver.find_element_by_xpath("//input[@value='发表']").click()

        #上一张浏览照片
        #by Css
        driver.find_element_by_css_selector("div.ibox left-img > img.ztag201008041230345").click()

        #点击 删除
        #by linkText
        driver.find_element_by_link_text("删除").click()

        #点击 确认
        #by Css
        #driver.find_element_by_css_selector("button.ui-btn.ui-btn-sub0").click()
        driver.find_element_by_link_text("确 定").click()

        #点击 返回
        #by xpath
        driver.find_element_by_link_text("<<返回").click()

        #退出登录
        #by id
        driver.find_element_by_id("headerLogout").click()

        #浏览器后退
        driver.back()

    def tearDown(self):
        self.driver.quit()
        self.assertEqual([], self.verificationErrors)

if __name__ == "__main__":
    unittest.main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值