Recently, when I was working on an automatic office project in selenium, I encountered an error in the mouse event Click(), when I was looking for page elements
div = driver.find_elements_by_xpath('//*[@id="test"]') #Find certain elements of a page
for x in range(10):#click on the first 10 links in order
div[x].click()
driver.switch_to.window(driver.window_handles[2])#switch to the page handle of the clicked page to perform the operation
#Omit the operation code here
driver.close()#close the current tab
driver.switch_to.window(driver.window_handles[1])#switch to the initial tab handle
When the above code is executed, you can click the first link. When you loop to the second link, you will get the error of element is not attached to the page document.
After careful observation, it is found that when the first link is closed, the initial page will be forced to refresh once. Therefore, it is very likely that the element in the div has changed, resulting in that the element cannot be found later. Therefore, I try to put the statement of finding the element in the loop, that is, each loop will look up the element again, and the problem is solved. After the solution, the code comparison is as follows:
for x in range(10):#Click on the first 10 links in order
div = driver.find_elements_by_xpath('//*[@id="test"]') # Move the find element statement inside the loop
div[x].click()
driver.switch_to.window(driver.window_handles[2])#Switch to the page handle of the clicked page to perform the operation
#Omit the operation code here
driver.close()#close the current tab
driver.switch_to.window(driver.window_handles[1])#switch to the initial tab handle
Read More:
- [Solved] Python-selenium locates an element cannot be clicked error: ElementClickInterceptedException
- [Solved] Python Selenium Error: AttributeError: ‘WebDriver‘ object has no attribute ‘find_element_by_xpath‘
- [Solved] Selenium Error: ERROR: Message: element not interactable
- Python+Selenium Error: AttributeError: ‘WebDriver‘ NameError: name ‘By‘ is not defined
- [Solved] Selenium python send_key error: list object has no attribute
- [Solved] selenium.common.exceptions.JavascriptException: Message: javascript error: windows is not defined
- Python Selenium Common Keyboard Controls
- [Solved] Selenium error: staleelementreferenceexception exception
- [Python] Right-click Selenium to Save the picture error: attributeerror: solution to module ‘pyscreen’ has no attribute ‘locationonwindow’
- [Solved] ValueError: only one element tensors can be converted to Python scalars
- Mac Selenium Use Error: Can not connect to the Service chromedriver
- OSError: [WinError 1455] The page file is too small to complete the operation. Error loading…
- Chromdriver Install error: File “C:\python37\lib\site-packages\selenium\webdriver\common\service.py”, line 76, in start stdin=PIPE) File…
- Python error: ‘int’ object is not callable
- [How to Solve] Python TypeError: ‘int‘ object is not subscriptable
- Python error collection: NameError: name ‘numpy’ is not defined
- [Solved] Pygame.error: mixer not initialized & pygame.error: WASAPI can‘t find requested audio endpoint: Could not Find the Element.
- The matching result of Python XPath is null
- Python parsing JSON Error: NameError: name ‘false’ is not defined
- [Solved] Python serializate error: NameError: name ‘JSON’ is not defined