selenium系列--手把手写测试脚本

        这里是清安,selenium断更了有一段时间了,主要是更新python去了,所以,今天我们来点稍微硬核的东西。简单的写个测试脚本,体验一下脚本的快乐。

        项目地址:用户登录 - ShopXO企业级B2C电商系统提供商 - 演示站点

        我们以此为例,我们来写一下登录注册的脚本。

        首先我们先写打开地址的方法:

# -->>>清安<<<---
from selenium import webdriver
from time import sleep

# 1.打开项目地址
driver = webdriver.Chrome()
driver.get('http://39.98.138.157/shopxo/public/index.php?s=/index/user/logininfo.html')
# 放入全局隐士等待加载
driver.implicitly_wait(10)


# 推出浏览器
driver.quit()

        这里加入了全局隐士等待有原因的,让它慢慢加载10S,主要是为了渲染界面元素的出现,不然可能会因为网络原因或者其他的原因导致报错。

        在点击注册按钮进入注册页面之前,我们可以写一个判断,判断它打开的网页是不是所需要的网页!以免进入的地方或者避免错误。

# -->>>清安<<<---
from selenium import webdriver
from time import sleep

# 1.打开项目地址
driver = webdriver.Chrome()
driver.get('http://39.98.138.157/shopxo/public/index.php?s=/index/user/logininfo.html')
# 放入全局隐士等待加载,让它慢慢加载10S,主要是为了渲染界面元素的出现,不然会报错
driver.implicitly_wait(10)
ele = driver.find_elements_by_xpath('/html/body/div[4]/div/div[2]/div[2]/form/div[1]/label')[0].text
print(ele)
if ele == '登录账号':
    print('进入的是登录注册界面哦')
else:
    raise Exception("请检查页面是否正确")
# 点击登录按钮
driver.find_element_by_xpath('/html/body/div[4]/div/div[2]/div[1]/a').click()

driver.quit()

        else那里你也可以直接print('请检查页面信息'),这个不做多的要求。

        进入注册界面后我们可以将输入框做一些判断然后再输入内容:

# -->>>清安<<<---
from selenium import webdriver
from time import sleep

# 1.打开项目地址
driver = webdriver.Chrome()
driver.get('http://39.98.138.157/shopxo/public/index.php?s=/index/user/logininfo.html')
# 放入全局隐士等待加载,让它慢慢加载10S,主要是为了渲染界面元素的出现,不然会报错
driver.implicitly_wait(10)
ele = driver.find_elements_by_xpath('/html/body/div[4]/div/div[2]/div[2]/form/div[1]/label')[0].text
print(ele)
if ele == '登录账号':
    print('进入的是登录注册界面哦')
else:
    raise Exception("请检查页面是否正确")
# 点击登录按钮
driver.find_element_by_xpath('/html/body/div[4]/div/div[2]/div[1]/a').click()
sleep(2)
ele1 = driver.find_element_by_xpath('//label[contains(text(),"用户名")]')
if ele1.text == '用户名':
    driver.find_element_by_name('accounts').send_keys('qingan')
sleep(1)
ele2 = driver.find_element_by_xpath('//label[contains(text(),"设置登录密码")]')
if ele2.text == '设置登录密码':
    driver.find_element_by_name('pwd').send_keys('qingan')
# 勾选阅读并同意
driver.find_element_by_class_name('am-icon-checked').click()
# 点击注册按钮
driver.find_elements_by_xpath('//button[contains(text(),"注册")]')[0].click()
driver.quit()

       当然这里如果账户有了就会有提示,告诉你账户已经存在了,这时候我们就直接点击登录跳转过去登录即可:

# -->>>清安<<<---
from selenium import webdriver
from time import sleep

# 1.打开项目地址
driver = webdriver.Chrome()
driver.get('http://39.98.138.157/shopxo/public/index.php?s=/index/user/logininfo.html')
# 放入全局隐士等待加载,让它慢慢加载10S,主要是为了渲染界面元素的出现,不然会报错
driver.implicitly_wait(10)
ele = driver.find_elements_by_xpath('/html/body/div[4]/div/div[2]/div[2]/form/div[1]/label')[0].text
print(ele)
if ele == '登录账号':
    print('进入的是登录注册界面哦')
else:
    raise Exception("请检查页面是否正确")

# 点击登录按钮
driver.find_element_by_xpath('/html/body/div[4]/div/div[2]/div[1]/a').click()
sleep(2)
ele1 = driver.find_element_by_xpath('//label[contains(text(),"用户名")]')
if ele1.text == '用户名':
    driver.find_element_by_name('accounts').send_keys('qinganan')
sleep(1)
ele2 = driver.find_element_by_xpath('//label[contains(text(),"设置登录密码")]')
if ele2.text == '设置登录密码':
    driver.find_element_by_name('pwd').send_keys('qingan')
# 勾选阅读并同意
driver.find_element_by_class_name('am-icon-checked').click()
# 点击注册按钮
driver.find_elements_by_xpath('//button[contains(text(),"注册")]')[0].click()
sleep(2)
try:
    ele3 = driver.find_element_by_xpath('//*[@id="common-prompt"]/p').text
    if ele3 == '账号已存在':
        print('账号已经存在')
        # 点击跳转
        driver.find_element_by_xpath('/html/body/div[4]/div/div/div/div[1]/a').click()
        # 输入账号密码登录
        driver.find_element_by_name('accounts').send_keys('anan')
        driver.find_element_by_name('pwd').send_keys('qingan')
        driver.find_element_by_xpath('/html/body/div[4]/div/div[2]/div[2]/form/div[3]/button').click()
    else:
        ele1 = driver.find_element_by_xpath('//label[contains(text(),"用户名")]')
        if ele1.text == '用户名':
            driver.find_element_by_name('accounts').send_keys('qinganan')
        sleep(1)
        ele2 = driver.find_element_by_xpath('//label[contains(text(),"设置登录密码")]')
        if ele2.text == '设置登录密码':
            driver.find_element_by_name('pwd').send_keys('qingan')
        # 勾选阅读并同意
        driver.find_element_by_class_name('am-icon-checked').click()
        # 点击注册按钮
        driver.find_elements_by_xpath('//button[contains(text(),"注册")]')[0].click()
        sleep(2)
        driver.quit()
except:

    driver.quit()

        这里面用到了try,不懂了可以去看看我写的python自动化快速上手的基础内容,有点类似于ifelse。但是还是有所不同。

        注意:代码自己敲一遍,下一章我们来将脚本升级为框架,其中会多很多的内容,所以这里一定要自己敲一遍。

猜你喜欢

转载自blog.csdn.net/weixin_52040868/article/details/121575118