學習一個簡單的拖拽動作,原樣代碼
from selenium import webdriver
from selenium.webdriver import ActionChains
# 互動動作
browser = webdriver.Chrome()
url = "http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable"
browser.get(url)
browser.switch_to.frame('iframeResult')
source = browser.find_elements_by_css_selector('#draggable')
target = browser.find_elements_by_css_selector('#droppable')
actions = ActionChains(browser)
actions.drag_and_drop(source, target)
actions.perform()
出現下面的錯誤,沒太看懂,求大神指點

Traceback (most recent call last):
File "D:/Programming Practice/Crawler/test_selenium/test_04.py", line 12, in <module>
actions.perform()
File "C:\Users\acm\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\common\action_chains.py", line 83, in perform
action()
File "C:\Users\acm\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\common\action_chains.py", line 293, in <lambda>
Command.MOVE_TO, {'element': to_element.id}))
AttributeError: 'list' object has no attribute 'id'
不加最后一句actions.perform()的話沒有拖拽動作也不報錯。
uj5u.com熱心網友回復:
find_elements得到的不是driver物件,是一個存盤了物件的list,執行事件的物件應該是一個driver物件,所以你應該對find_elemenets得結果進行處理,獲取具體的物件,然后進行后邊的操作uj5u.com熱心網友回復:
應該是find_element_by_css_selector, 多了一個suj5u.com熱心網友回復:
同問,類似,但不一樣driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.find_element_by_xpath("//*[@id=\"lg\"]/map/area")
# driver.find_element_by_css_selector("#lg > map > area")
ccl = ActionChains(driver)
ccl.context_click(driver)
ccl.send_keys(Keys.ARROW_DOWN)
ccl.send_keys(Keys.ENTER)
ccl.perform()
# ActionChains(driver).context_click(driver).perform()
# ccl.send_keys(Keys.ARROW_DOWN).send_keys(Keys.ENTER).perform()
time.sleep(3)
driver.quit()
加上ccl.perform()就報錯,不加上的話,不報錯也不執行步驟,請問在做的大神有沒有能解答的
uj5u.com熱心網友回復:
有可能是定位到的element不唯一導致的uj5u.com熱心網友回復:
看最后一行報錯就知道 原因了: AttributeError: 'list' object has no attribute 'id'source = browser.find_elements_by_css_selector('#draggable')
target = browser.find_elements_by_css_selector('#droppable')
這兩個是 find_element 不是 find_elements 。不用加 s
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/10202.html
上一篇:Python 視窗截圖 錯誤求解
下一篇:SDF負延時怎么解決
