WebDriver.find_element_by_id() 需要 1 个位置参数,但给出了 2 个

问题描述 投票:0回答:1
from selenium import webdriver
import time
driver = webdriver.Chrome() 
driver.implicitly_wait(10)
driver.maximize_window()
driver.get("https://opensource-demo.orangehrmlive.com/")
driver.find_element_by_id('username').send_keys("Admin")
driver.find_element_by_id('password').send_keys("admin123")
driver.find_element_by_link_text('login').click()
time.sleep(2)
driver.close()
driver.quit()
print("Test Completed")

** 错误(问题):**

Traceback (most recent call last):
 username_field = driver.find_element_by_id('username')
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: WebDriver.find_element_by_id() takes 1 positional argument but 2 were given

我尝试在自定义 Webdriver 中添加方法 (find_element_by_id),因为我无法在 test.py 文件中找到它,所以我自己创建了它。但最终,我遇到了上面提到的错误(问题)。

我是否必须添加库才能通过 id 查找元素,或者我的网络驱动程序是否需要更新? 我是新人,正在学习这个。如果有人帮助我,我将不胜感激。

python selenium-webdriver webdriver pytest browser-automation
1个回答
0
投票

.find_element_by_id()
语法不久前已被弃用。当前语法是

from selenium.webdriver.common.by import By

driver.find_element(By.ID, "username")

您应该熟悉文档,以及更多查找元素和其他 Selenium 功能的方法。

© www.soinside.com 2019 - 2024. All rights reserved.