1. Selenium無(wú)法點(diǎn)擊元素,報(bào)錯(cuò):ElementClickInterceptedException:element click intercepted
解決辦法:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-547263.html
- 方法一:
element = driver.find_element_by_xpath("表達(dá)式") driver.execute_script("arguments[0].click();", element)
- 方法二:
element = driver.find_element_by_xpath('表達(dá)式') webdriver.ActionChains(driver).move_to_element(element ).click(element ).perform()
2. selenium操作下拉滾動(dòng)條方法
- 方法一 使用js腳本直接操作:
js = "var q=document.getElementById('id').scrollTop=10000" driver.execute_script(js)
- 方法二 使用JavaScript腳本將滾動(dòng)條拖動(dòng)到指定地方:
target = driver.find_element_by_id("id_keypair") # 需要將滾動(dòng)條拖動(dòng)至的指定的元素對(duì)象定位 driver.execute_script("arguments[0].scrollIntoView();", target) # 將滾動(dòng)條拖動(dòng)到元素可見的地方
- 方法三 根據(jù)頁(yè)面顯示進(jìn)行變通(在本實(shí)例中的頁(yè)面中,密碼是輸入框,正常手工操作時(shí),可以通過(guò)tab鍵可以從用戶框切換到密碼框中,所以根據(jù)此思路,在python中也可以發(fā)送tab鍵來(lái)切換,使元素顯示。):
from selenium.webdriver.common.keys import Keys # 導(dǎo)入Keys類 driver.find_element_by_id("id_login_method_0").send_keys(Keys.TAB) # 定位元素并操作輸入
- 方法四 send_keys(Keys.END) 模擬向頁(yè)面發(fā)送空格鍵:
注意: 發(fā)送空格鍵的元素應(yīng)該是整個(gè)頁(yè)面對(duì)象,比如說(shuō)定位到頁(yè)面body后進(jìn)行操作
#coding=utf-8
from 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
def search():
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 in range(5):
browser.find_element_by_tag_name('body').send_keys(Keys.Space)
time.sleep(1)
except TimeoutException:
search()
search()
- 方法五 使用鼠標(biāo)操作:
#coding=utf-8
from 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
def search():
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. 等待元素加載
#創(chuàng)建WebDriverWait對(duì)象
wait = WebDriverWait(browser, 10)
wait.until(expected_conditions.visibility_of_element_located((By.XPATH, 'elemental')))
4. 縮放頁(yè)面
script = "document.body.style.zoom='75%'"
driver.execute_script(script)
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-547263.html
到了這里,關(guān)于selenium常見問(wèn)題(網(wǎng)頁(yè)縮放、滑動(dòng),元素獲取不到......)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!