1. Selenium无法点击元素,报错:ElementClickInterceptedException:element click intercepted
解决办法:
- 方法一:
element = driver.find_element_by_xpath("表达式") driver.execute_script("arguments[0].click();", element)
- 方法二:
element = driver.find_element_by_xpath('表达式') webdriver.ActionChains(driver).move_to_element(element ).click(element ).perform()
2. selenium操作下拉滚动条方法
- 方法一 使用js脚本直接操作:
js = "var q=document.getElementById('id').scrollTop=10000" driver.execute_script(js)
- 方法二 使用JavaScript脚本将滚动条拖动到指定地方:
target = driver.find_element_by_id("id_keypair") # 需要将滚动条拖动至的指定的元素对象定位 driver.execute_script("arguments[0].scrollIntoView();", target) # 将滚动条拖动到元素可见的地方
- 方法三 根据页面显示进行变通(在本实例中的页面中,密码是输入框,正常手工操作时,可以通过tab键可以从用户框切换到密码框中,所以根据此思路,在python中也可以发送tab键来切换,使元素显示。):
from selenium.webdriver.common.keys import Keys # 导入Keys类 driver.find_element_by_id("id_login_method_0").send_keys(Keys.TAB) # 定位元素并操作输入
- 方法四 send_keys(Keys.END) 模拟向页面发送空格键:注意: 发送空格键的元素应该是整个页面对象,比如说定位到页面body后进行操作
#coding=utf-8from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.action_chains import ActionChains
browser=webdriver.Chrome("G:/dj/chromedriver.exe")
wait=WebDriverWait(browser,10)
browser.set_window_size(1400,900)import time
defsearch():try:
browser.get("https://www.taobao.com")
total=wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,"body > div:nth-child(29)")))for i inrange(5):
browser.find_element_by_tag_name('body').send_keys(Keys.Space)
time.sleep(1)except TimeoutException:
search()
search()
- 方法五 使用鼠标操作:
#coding=utf-8from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.action_chains import ActionChains
browser=webdriver.Chrome("G:/dj/chromedriver.exe")
wait=WebDriverWait(browser,10)
browser.set_window_size(1400,900)import time
defsearch():try:
browser.get("https://www.taobao.com")
total=wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,"body > div:nth-child(29)")))
target = browser.find_element_by_css_selector('body > div:nth-child(29)')
actions = ActionChains(browser)
actions.move_to_element(target)
actions.perform()except TimeoutException:
search()
search()
3. 等待元素加载
#创建WebDriverWait对象
wait = WebDriverWait(browser,10)
wait.until(expected_conditions.visibility_of_element_located((By.XPATH,'elemental')))
4. 缩放页面
script ="document.body.style.zoom='75%'"
driver.execute_script(script)
本文转载自: https://blog.csdn.net/Keep__Fighting/article/details/129555745
版权归原作者 Keep__Fighting 所有, 如有侵权,请联系我们删除。
版权归原作者 Keep__Fighting 所有, 如有侵权,请联系我们删除。