[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
```python
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版本 做了一次大调整
```python
改动时间 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
```
```python
# 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()
```
```python
改动时间 2022.1.7
版本: 0.0.6
新增方法className()
新增方法classNames()
修复css()BUG
```
```python
改动时间 2022.2.15
版本: 0.0.6
新增方法 location()
增加日志参数:log,保持日志需要使用pintStep()方法
```
```python
改动时间 2022.3.24
版本: 0.0.7
新增类 CSeleniumThread
新增类 RandomData
修改方法 elementPos()  来源 ChromeSelenium类
```