在学习python的selenium中,我遇到一个问题,(loc) 这个星号的作用是什么?
我的猜测,是不是让find_element()去匹配元组里的值?
请问这种问题属于什么类型,是语法不熟悉的问题吗?
那我应该怎么补充学习这类问题?
代码:
loc = (By.XPATH, '//div[@class="alert alert-warning"]')
WebDriverWait(driver, 10).until(EC.visibility_of_element_located(loc))
value = driver.find_element(*loc).text
这里的星号 (*) 是 Python 中的解包(unpacking)符号。在这里,它将 tuple loc 解包成两个独立的变量,即它们的第一个元素和第二个元素,作为 find_element() 函数的参数传入
请参考这篇文章:https://blog.csdn.net/zkk9527/article/details/88675129
题主,你好,星号参数是把接收的多个参数合并为一个元组,你这里应该是有代码把定位元素的方法封装了一下,根据传入的值决定某种元素定位方式。
例如代码:
```python
def get_element(driver, *loc):
element = driver.find_element(*loc)
return element
if __name__ == '__main__':
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
input = get_element(driver,By.ID,'kw') #使用方式
# loc = (By.ID, 'kw')
# input = get_element(driver, *loc) #第二种方式
input.send_keys('即可时间')
sleep(1)
get_element(driver,By.ID,'su').click()
sleep(1)
driver.quit()
```
学习的话,可以向代码编写者求教,自学的话可以上网搜索UI自动化测试相关的资料。
星号表示元组、list之类的可迭代对象拆包
比如loc原来是[1,2]
那么*loc就是1,2,相当于给find_element函数传递两个参数1和2,而不是传递一个list