方法一:
submitBtn = driver.find_element_by_class_name("anniuchengse")
driver.execute_script("arguments[0].scrollIntoView()", submitBtn)
//使得提交按钮可点的重要代码
https://blog.csdn.net/yijinaqingan/article/details/104539648
方法二:
1.显示等待:WebDriverWait()类:
-
显示等待:设置一个等待时间和一个条件,在规定时间内,每隔一段时间查看下条件是否成立,如果成立那么程序就继续执行,否则就提示一个超时异常(TimeoutException)。
- 通常情况下WebDriverWait类会结合ExpectedCondition类一起使用
-
from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By driver = webdriver.Chrome() driver.get('https://www.baidu.com') # 设置浏览器:driver 等待时间:20s wait = WebDriverWait(driver, 20) # 设置判断条件:等待id='kw'的元素加载完成 input_box = wait.until(EC.presence_of_element_located((By.ID, 'kw'))) # 在关键词输入:关键词 input_box.send_keys('关键词')
调用如下:
WebDriverWait(driver, 超时时长, 调用频率, 忽略异常).until(可执行方法, 超时时返回的信息)
-
2.隐式等待
-
implicitly_wait(xx):设置等待时间为xx秒,等待元素加载完成,如果到了时间元素没有加载出,就抛出一个NoSuchElementException的错误。
-
注意:隐性等待对整个driver的周期都起作用,所以只要设置一次即可
from selenium import webdriver driver = webdriver.Chrome() driver.implicitly_wait(30) # 隐性等待,最长等30秒 driver.get('https://www.baidu.com') print(driver.current_url) print(driver.title)