在做web自动化的过程中,定义了页面元素后,使用系统自带的driver.find_element()方法查找元素,发现怎么都没有办法取到第一个参数by == By.ID
错误写法:

user_id = (By.ID, 'loginFullEmail')
   def set_username(self, username):
        name = self.driver.find_element(self.user_id)

本着依葫芦画瓢的原则,看网上有把参数前加*,即:
name = self.driver.find_element(*self.user_id)报着试试的态度,果然过了。那么问题来了,参数前加星号表示什么意思?整理了下,方便以后遇到类似的问题再翻资料查找。
(1)单个星号,如:*args是用来接受任意多个参数并将其放在一个数组中,它的本质是一个tuple。
(2)两个星号,如:**kwargs 用于接收类似于关键参数一样赋值的形式的多个实参放入字典中(即把该函数的参数转换为字典),它的本质是一个dict

*args 和 **kwargs 主要用于函数定义。
你可以将不定数量的参数传递给一个函数。不定的意思是:预先并不知道, 函数使用者会传递多少个参数给你, 所以在这个场景下使用这两个关键字。其实并不是必须写成 *args 和 **kwargs。 *(星号) 才是必须的. 你也可以写成 *ar 和 k 。而写成 *args 和kwargs 只是一个通俗的命名约定。

python函数传递参数的方式有两种:

位置参数(positional argument)
关键词参数(keyword argument)
*args 与 **kwargs 的区别,两者都是 python 中的可变参数:

# -*- coding:utf-8 -*-   

def fun(name, *args):
    print '我叫:', name
    for m in args:
        print "我爱吃 :", m    

def fun2(**kwargs):
    for key, value in kwargs.items():
        print "{0} 喜欢 {1}".format(key, value)
    
if __name__ == '__main__':
    fun("Sam", "apple", "orange")
    print('----------------------------')
    fun2(Kevin="pear", Jane="grape")

输出结果为:

我叫: Sam
    我爱吃 : apple
    我爱吃 : orange
    ----------------------------
    Jane 喜欢 grape
    Kevin 喜欢 pear

在整理上面这些内容的时候遇到两个问题:
1.python2中print()中文无法打印,打印出是ASCII码,如下。解决办法:print打印时不加括号,即: print ‘我叫:’, name

# -*- coding:utf-8 -*-
def fun(name, *args):
    print ('我叫:', name)
    for m in args:
        print ("我爱吃 :", m)    

if __name__ == '__main__':
    fun("Sam", "apple", "orange")

输出结果:

('\xe6\x88\x91\xe5\x8f\xab\xef\xbc\x9a', 'Sam')
('\xe6\x88\x91\xe7\x88\xb1\xe5\x90\x83 \xef\xbc\x9a', 'apple')
('\xe6\x88\x91\xe7\x88\xb1\xe5\x90\x83 \xef\xbc\x9a', 'orange')

python2默认编码是ascii,意味着.py文件中的str及.py文件都是以ascii码来存储(中文是不支持的),在文件头加上# -- coding:utf-8 --,就指定了str和.py文件都以utf-8来编码(支持中文)。
2.不算问题,算扩展内容吧。数组和字典的区别:
数组用方括号([])表示,里面的每一项用逗号(,)隔开。python允许数组里面任意的放置数字和字符串。数组下表是从0开始,所以,list[0]会输出数组中的第一项。
字典:字典用花括号({})表示,里面的项成对出现,一个key对应一个vaule。key和value之间用冒号(:)分隔,不用项之间用逗号(,)分隔。

1 dicts = {"username":"zhangsan","password":123456}
2 dicts.keys()
3 {"username","password"}