python selenium

selennium 用论坛的这个 [](https://blog.csdn.net/chuhe163/article/details/108422

```python
driver.get("https://www.baidu.com")
from time import sleep
sleep(5)
print(driver)
print(driver.title)
sleep(5)

print(driver.find_element(By.ID,'su'))

```628 ) 就会报错,单存查询标题可以,只要查询ID就报错,提示selenium.common.exceptions.InvalidArgumentException: Message: using parameter value 'id' is not a valid value

这个错误是因为在使用 find_element 方法时,参数 By.ID 应该是 By.ID 而不是 'id'。正确的代码demo:

from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
sleep(5)
print(driver.title)
sleep(5)
print(driver.find_element(By.ID, 'su'))

【以下回答由 ChatGPT 生成】

这个问题的出错原因是缺少对WebDriverWait的使用,将WebDriverWait与ExpectedConditions一起使用,以等待元素加载完成后再进行查找。下面是修改后的代码示例:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")

# 使用WebDriverWait等待元素加载完成
wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.ID, 'su')))

print(driver.title)
print(element)

通过导入WebDriverWaitexpected_conditions模块,并使用EC.presence_of_element_located方法,我们将等待条件与要查找的元素结合起来,等待直到元素出现。然后使用print语句打印网页标题和找到的元素,即可实现正确的元素查找。

希望这个解决方案对你有帮助!如果你还有其他问题,请随时提问。



【相关推荐阅读】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^