Skip to main content

Simplify native Selenium operations to locate elements in a shorter manner

Project description

[TOC]

CSelenium

作者:LX

开始时间: 2021.12.15

更新时间: 2022.1.3

简化原生selenium操作,以更简短的方式对元素定位 使代码看起来更加清晰.

特点:

代码简洁,
代码具有及联操作

author: LX

Start Time: 2021.12.15

UpdateTime: 2021.12.20

Simplify native Selenium operations to locate elements in a shorter manner Make the code look cleaner.

characteristics:

Clean code,
Code has and associated operations
from src.Cselenium.CSelenium import ChromeSelenium,CSeleniumThread

def test1():
    cs = ChromeSelenium()
    cs.frame()
    # cs.get("http://www.baidu.com")
    cs.wait(2)
    cs.quit()
# test1()

def test2():
    cs = ChromeSelenium()
    cs.get("http://www.baidu.com")
    cs.id("kw").send_keys("hello")
    cs.wait(1)
    cs.quit()


def test3():
    cs = ChromeSelenium()
    cs.get("http://www.baidu.com")
    cs.id("kw").send_keys("hello world")
    cs.id("su").click()
    cs.wait(2)
    cs.quit()

# test3()

def test4():
    # 显示信息,无界面
    # info_tracking=True,is_interface=True
    cs = ChromeSelenium(info_tracking=True)
    cs.get("http://www.baidu.m")
    cs.wait(3)
    cs.id("kw").send_keys("abc")
    cs.id("su").click()
    cs.alert()
    cs.wait(4)
    cs.quit()

def test5():
    cs = ChromeSelenium()
    cs.get("http://127.0.0.1:8080/shixunyun")
    cs.implicitly_wait(3)
    cs.id("username").send_keys("lxadmin").xpath('//*[@id="app"]/div/div/form/div[3]/div/div/input').send_keys("admin")
    cs.id("loginBtn")
    cs.wait(5)
    cs.quit()


def test6():
    # 显示错误信息,并且忽略错误
    cs = ChromeSelenium(info_tracking=True,ignore_err=False)
    cs.get("http://www.baidu.com")
    cs.id("kw").send_keys([1,2,3])
    cs.wait(1)
    cs.quit()


def test7():
    # 显示错误信息,并且忽略错误
    cs = ChromeSelenium(info_tracking=True,ignore_err=False)
    cs.get("http://www.baidu.com")
    # cs.clear()
    cs.id("kw").send_keys("hello").click()
    cs.wait(1)
    cs.quit()

# test7()
# ----------------------------------CSeleniumThread测试----------------
def test8():
    # "firefox",chrome
    s = CSeleniumThread(["chrome", "firefox"], info_tracking=True)
    s.get("http://www.baidu.com")
    # s.id("kw").send_keys("hello")
    s.id("kw").send_keys("hello").wait(2).id("su").click()
    s.wait(3)
    s.quit()
    s.run()

0.0.5版本 做了一次大调整

改动时间 2022.1.3
改动一:wait_time原来int 修改为 float
改动二:ChromeSelenium类中初始化新增executable_path参数,ignore_err参数
      executable_path:浏览器驱动路径
      ignore_err:是布尔值,当值为False时,可以忽略执行方法产生当报错(大部分),一般配合
      info_tracking参数一起使用,
改动三:新增newElement()方法,这个方法可以让你去定位另一个元素
      修改原setEle()方法名为setElement(),
      新增currentTime()一个参数connector,时间的连接符号,默认-,
      新增getBrowserName()方法,返回浏览器名称,
      新增class_()方法,获取元素值class属性值,
      新增name_()方法,获取元素值name属性值,
      删除autoValue()方法,
      修改原resize()方法名为resizeWin(),
      修改原getEle()方法名为element()
      新增elements()方法,
      修改原eleIs_Displayed()方法名为isElementDisplayed(),
      修改原eleAttr()方法名g为etElementAttr(),
      修改原absElePos()方法名为elementPos(),
      修改原abaX()方法名为elementX(),
      修改原absY()方法名为elementY(),
      修改原eleSize()方法名为elementSize(),
      修改原eleWidth()方法名为elementWidth(),
      修改原eleHeight()方法名为elementHeight(),
      修改原moreWins()方法名为moreWin(),
      删除simulationKeyDown()方法,
      删除simulationKeyUp()方法,
改动四:新增CSeleniumThread类
        一种写法对映多个浏览器执行
        为了保证这个类正常运行,请将 浏览器驱动 放在与Python解释器同级目录下
        One script executes against multiple browsers
        To keep this class running, place the browser driver in the same directory as the Python interpreter
# CSeleniumThread 类例子:
from src.Cselenium.CSelenium import ChromeSelenium,CSeleniumThread
'''
    请确保chrome,firefox的驱动能正常使用
    Ensure that the Chrome and Firefox drivers work properly
'''
s = CSeleniumThread(["chrome", "firefox"], info_tracking=True)
s.get("http://www.baidu.com")
s.id("kw").send_keys("hello").wait(2).id("su").click()
s.wait(2)
s.quit()
s.run()
改动时间 2022.1.7
版本: 0.0.6
新增方法className()
新增方法classNames()
修复css()BUG
改动时间 2022.2.15
版本: 0.0.6
新增方法 location()
增加日志参数:log,保持日志需要使用pintStep()方法
改动时间 2022.3.24
版本: 0.0.7
新增类 CSeleniumThread
新增类 RandomData
修改方法 elementPos()  来源 ChromeSelenium类

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

CSelenium-0.0.7.tar.gz (27.1 kB view details)

Uploaded Source

Built Distribution

CSelenium-0.0.7-py3-none-any.whl (30.1 kB view details)

Uploaded Python 3

File details

Details for the file CSelenium-0.0.7.tar.gz.

File metadata

  • Download URL: CSelenium-0.0.7.tar.gz
  • Upload date:
  • Size: 27.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.25.1 requests-toolbelt/0.9.1 urllib3/1.26.4 tqdm/4.59.0 importlib-metadata/3.10.0 keyring/22.3.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.8

File hashes

Hashes for CSelenium-0.0.7.tar.gz
Algorithm Hash digest
SHA256 4712d96d70dc70b6a78149b8769d6103adb34f1b4ddfbeaed3ad4ece78d96c49
MD5 c344de25fed266ab7cc5942dde9f939a
BLAKE2b-256 0519debdec99f8176eecefd59ebffd5d0221adc8f6cebda21afebd06e6d9d800

See more details on using hashes here.

File details

Details for the file CSelenium-0.0.7-py3-none-any.whl.

File metadata

  • Download URL: CSelenium-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 30.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.25.1 requests-toolbelt/0.9.1 urllib3/1.26.4 tqdm/4.59.0 importlib-metadata/3.10.0 keyring/22.3.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.8.8

File hashes

Hashes for CSelenium-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 b0c00667c8b484d74e8d422e388623c6189879a8f7458c59c85a93581b83dbc0
MD5 da6942814308dca8a31073b1508683f6
BLAKE2b-256 2c19871165356f4a0d3c147f7e6c9073a7151cf7c7e7a33c50dbbb54eadf2492

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page