Coder Social home page Coder Social logo

baiyueheiyu's People

Contributors

jcyrss avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

donniezhanggit

baiyueheiyu's Issues

happy coding for baiyuehy#2

参考答案

from selenium import webdriver
import time
# 导入Select类
from selenium.webdriver.support.ui import Select

from lib import CHECK_POINT2

#  删除界面列出的所有条目,
#  比如: 订单,或者客户,或者药品
#  由于 代码逻辑相同,封装在函数 delAll 中
def delAll(wd):

    while True:
        # 修改全局等待时间,以免找不到元素,等待时间较长
        wd.implicitly_wait(1)
        # 找到所有删除按钮
        # 注意,一定要每次循环都 执行一遍,
        # 因为每次删除后,界面元素重新 产生了
        delButtons = wd.find_elements_by_css_selector(
            '.search-result-item-actionbar label:nth-last-child(1)')

        # 再改回原来的等待时间
        wd.implicitly_wait(5)

        # 没有删除按钮,说明已经全部删除了
        if not delButtons:
            break

        # 点击删除按钮
        delButtons[0].click()

        # 弹出对话框 点击确定
        wd.switch_to.alert.accept()

        # 等待1秒,等界面刷新
        time.sleep(1)


#  添加 客户 或者 药品
#  由于 代码逻辑相同,封装在函数中
def addCustomerOrMedicion(field1,field2,field3):
    # 点击添加按钮
    wd.find_element_by_class_name('glyphicon-plus').click()

    # form-contorl 对应3个输入框
    inputs = wd.find_elements_by_css_selector('.add-one-area .form-control')

    # 输入 药品名称
    inputs[0].send_keys(field1)
    # 输入 编号
    inputs[1].send_keys(field2)
    # 输入 描述
    inputs[2].send_keys(field3)

    # 第1个 btn-xs 就是创建按钮, 点击创建按钮
    wd.find_element_by_css_selector('.add-one-area .btn-xs').click()

    # 等待界面刷新稳定
    time.sleep(1)


wd = webdriver.Chrome()
wd.implicitly_wait(5)

wd.get('http://127.0.0.1/mgr/sign.html')

# 根据 ID 选择元素,并且输入字符串
wd.find_element_by_id('username').send_keys('byhy')
wd.find_element_by_id('password').send_keys('88888888')

# 点击登录
wd.find_element_by_tag_name('button').click()


# ****  第1步:初始化操作 ****
# 先删除掉系统中所有的订单、客户和药品 

# 点击订单菜单,删除所有订单
wd.find_element_by_css_selector('.sidebar-menu li:nth-of-type(4)').click()
delAll(wd)

# 点击药品菜单,删除所有药品
wd.find_element_by_css_selector('.sidebar-menu li:nth-of-type(3)').click()
delAll(wd)

# 点击客户菜单,删除所有客户
wd.find_element_by_css_selector('.sidebar-menu li:nth-of-type(2)').click()
delAll(wd)


# ****  第2步:添加 客户 、 药品 、订单

# ****   添加 客户 和 药品 *****

# 点击药品菜单
wd.find_element_by_css_selector('.sidebar-menu li:nth-of-type(2)').click()

addCustomerOrMedicion('南京中医院1','2551867851','江苏省-南京市-秦淮区-汉中路-501')
addCustomerOrMedicion('南京中医院2','2551867852','江苏省-南京市-秦淮区-汉中路-502')
addCustomerOrMedicion('南京中医院3','2551867853','江苏省-南京市-秦淮区-汉中路-503')

# 点击客户菜单
wd.find_element_by_css_selector('.sidebar-menu li:nth-of-type(3)').click()
addCustomerOrMedicion('青霉素盒装1','YP-32342341','青霉素注射液,每支15ml,20支装')
addCustomerOrMedicion('青霉素盒装2','YP-32342342','青霉素注射液,每支15ml,30支装')
addCustomerOrMedicion('青霉素盒装3','YP-32342343','青霉素注射液,每支15ml,40支装')



# ****   添加 订单 *****

# 点击订单菜单
wd.find_element_by_css_selector('.sidebar-menu li:nth-of-type(4)').click()

# 点击添加按钮
wd.find_element_by_class_name('glyphicon-plus').click()

# 输入订单名称
name = wd.find_element_by_css_selector('.add-one-area .form-control')
name.send_keys('南中订单1')

# 两个select
selectElements = wd.find_elements_by_css_selector('.add-one-area select')

# 选择客户
Select(selectElements[0]).select_by_visible_text("南京中医院2")
# 选择药品
Select(selectElements[1]).select_by_visible_text("青霉素盒装1")

wd.find_element_by_css_selector(
    '.add-one-area input[type=number]')\
    .send_keys('100')

# 第1个 btn-xs 就是创建按钮, 点击创建按钮
wd.find_element_by_css_selector('.add-one-area .btn-xs').click()


# ****  第3步: 查看 添加 订单信息 *****

# 找到 列表最上面的药品信息
# 注意,药品
items = wd.find_elements_by_css_selector(
    'div.search-result-item span,div.search-result-item p')[:8]


texts = [item.text for item in items]
print(texts)

# 订单日期信息到秒,不方便直接验证,先取出来
orderTime = texts.pop(3)

# 预期内容为
expected = [
'订单:',
'南中订单1',
'日期:',
'客户:',
'南京中医院2',
'药品:',
'青霉素盒装1 * 100'
]


CHECK_POINT2('药品信息和添加内容一致', texts == expected)

# 再检查订单日期时间,转化为整数时间,好比较
intOrderTime = int(time.mktime(time.strptime(orderTime, '%Y-%m-%d %H:%M:%S')))
curTime = int(time.time())
# 绝对值 差距在100秒内
deviation = abs(intOrderTime-curTime)
print(deviation)
CHECK_POINT2('订单时间误差', deviation<100)

wd.quit()

some refers for little class2

sele-20191220f

参考答案

from selenium import webdriver
from lib import CHECK_POINT2


wd = webdriver.Chrome()
wd.implicitly_wait(5)

wd.get('http://127.0.0.1/mgr/sign.html')

# 根据 ID 选择元素,并且输入字符串
wd.find_element_by_id('username').send_keys('byhy')
wd.find_element_by_id('password').send_keys('88888888')

# 根据标签名查找元素
wd.find_element_by_tag_name('button').click()

wd.find_element_by_css_selector('.main-footer .pull-right').click()

# 记录当前窗口 handler,一遍后续返回
startWnd = wd.current_window_handle

# 切换到打开的 白月黑羽网页
for wnd in wd.window_handles:
    wd.switch_to.window(wnd)
    if '白月黑羽' in wd.title:
        wd.maximize_window()
        break

# 获取导航菜单项目
navItems = wd.find_elements_by_css_selector('#site-nav li')
navTitles = [item.text for item in navItems]
print(navTitles)

CHECK_POINT2('白月黑羽官网菜单是否和预期一致',
             navTitles ==[
                'Python基础',
                'Python进阶',
                'Web开发',
                '自动化和性能测试',
                'Linux和MySQL',
                '练习作业',
                '常见问题',
                '好文分享'
             ])

# 返回起始网页
wd.switch_to.window(startWnd)

# 点击顶部 用户 图标
wd.find_element_by_css_selector('.navbar-custom-menu .user-menu').click()

#点击退出登录
wd.find_element_by_css_selector('.user-footer div.pull-right').click()

# 等待一会儿,等待新的网址加载
from time import sleep
sleep(2)

#检查url,判断是否进入登录页面
CHECK_POINT2('进入登录页面', '/mgr/sign.html' in wd.current_url)


wd.quit()

some refers for little class

sele-20191220a

参考

from selenium import  webdriver

driver = webdriver.Chrome()

driver.get('http://127.0.0.1/mgr/sign.html')

input('按回车退出程序:')

driver.quit()

黑羽魔巫宗的迷宫

点击链接下载 数据文件包
stock.zip

解压后得到的是一个股票代码文件,记录了**所有的股票名称和代码。

请写一个股票信息查询程序,从文件加载数据, 并且显示 ‘请输入要查询的股票名称或代码:’

当用户输入股票代码(6位全是数字)时,打印出对应的 股票名称和代码
当用户输入股票名称(不全是数字)时,打印出对应的 股票名称和代码

无影暗魔宗

vscode 的 配置 settings.json

{
    "workbench.settings.openDefaultKeybindings":true,
    "workbench.view.experimental.allowMovingToNewContainer":true,
    "terminal.integrated.shell.windows": "C:\\Windows\\System32\\cmd.exe",
    "git.autofetch": true,
    "git.enableSmartCommit": true,
    "files.autoSave": "afterDelay",
    "editor.fontSize": 15,
    "workbench.sideBar.location": "left",
    "workbench.startupEditor": "newUntitledFile",
    "gitlens.codeLens.authors.enabled": false,
    "gitlens.hovers.annotations.changes": false,
    "gitlens.hovers.currentLine.changes": false,
    "gitlens.hovers.annotations.details": false,
    "gitlens.hovers.annotations.enabled": false,
    "gitlens.showWhatsNewAfterUpgrades": false,
    "eslint.enable": false,
    "[python]": {
        "editor.insertSpaces": true,
        "editor.tabSize": 4  
      },
    "gitlens.advanced.messages": {
      "suppressSupportGitLensNotification": true
    },
    "python.jediEnabled": false,
    "window.zoomLevel": 0,
    "explorer.confirmDelete": false,
    "files.eol": "\n",
    "gitlens.gitCommands.skipConfirmations": [
      "fetch:command",
      "stash-push:command",
      "switch:command",
      "push:command"
    ],
    "gitlens.gitCommands.closeOnFocusOut": true,
    "gitlens.currentLine.enabled": false,
    "gitlens.hovers.enabled": false,
    "markdown-toc.updateOnSave": false,
    "editor.fontFamily": "Consolas, 'Courier New', monospace, '微软雅黑'",
    "editor.accessibilitySupport": "off",
    "diffEditor.ignoreTrimWhitespace": false,
    "workbench.preferredDarkColorTheme": "GitHub Plus",
    "workbench.preferredHighContrastColorTheme": "GitHub Plus",
    "workbench.preferredLightColorTheme": "GitHub Plus",
    
    "http.proxy": "http://127.0.0.1:10800",

    // https://code.visualstudio.com/api/extension-guides/color-theme#workbench-colors
    "workbench.colorCustomizations": {
      "[GitHub Plus]": {
        // activity bar
        "activityBar.border": "#e9e1e1",
        "activityBar.background": "#ffffff",
        "activityBar.foreground": "#c72160",
        "activityBar.inactiveForeground": "#4b94b6",
        "activityBarBadge.background": "#d73a49",
        // sideBar bar
        "sideBar.border": "#e7e4e4",
        "sideBar.background": "#ffffff",
        "sideBar.foreground": "#000000",
        "sideBarSectionHeader.background": "#ffffff",            
        "sideBarSectionHeader.border": "#e1e1e6", 
    
        "editorLineNumber.foreground": "#4d5f3c",
        
      }
    },
    "editor.mouseWheelZoom": true,
    "workbench.colorTheme": "GitHub Plus",

  
    // https://stackoverflow.com/a/57426933/2602410
    "editor.tokenColorCustomizations": {
      "[GitHub Plus]": {
        "textMateRules": [
        {
              "scope": [
                "entity.name.type.class",
                "entity.other.inherited-class"
              ],
              "settings": {
                  "foreground": "#296fb6",
                  "fontStyle": "bold"
              }
        },
        {
          "scope": [
              "meta.definition.method"
          ],
          "settings": {
              "foreground": "#2871bb",
              "fontStyle": "underline"
          }
        },
        {
            "scope": [
              "meta.object-literal.key",
              "variable.other.property"
            ],
            "settings": {
                "foreground": "#296fb6",
            }
        },
        {
            "scope": [
              "variable.parameter"
            ],
            "settings": {
                "foreground": "#b629a3",
                "fontStyle": "italic"
            }
        },
        {
            "scope": [
              // "variable.parameter",
              "variable.other.readwrite",
              "meta.arrow.js"
            ],
            "settings": {
                "foreground": "#06172b"
            }
        },

        {
            "scope": [
                "meta.function-call",
                "entity.name.function"
            ],
            "settings": {
                "foreground": "#2871bb"
            }
        }
        
      ]
        
      }
    }
  
    
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.