python - Selenium Python - 这不是重复的问题..实际上无法正确定位元素
问题描述
我有下面的程序通过 selenium 截屏
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
driver = webdriver.Chrome(executable_path='C:\Downloadsnew\chromedriver_win32\chromedriver.exe')
driver.maximize_window()
#driver.implicitly_wait(40)
driver.get("https://now.com/welcome.do")
#element=WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.id,'user_name')))
elem = driver.find_element_by_id("user_name")
elem.send_keys("user1")
elem = driver.find_element_by_id("user_password")
elem.send_keys("password1")
elem.send_keys(Keys.RETURN)
elem.click()
WebDriverWait(driver, 100).until(EC.url_changes(driver.current_url))
element=WebDriverWait(driver, 10).until(EC.presenceOfElementLocated((By.XPATH,"//div[@class='sn-widget-list-title'][contains(.,'Dashboards')]"))).click()
print(element)
当我执行它应该使用用户名和密码登录,然后它会打开另一个页面,然后我需要点击一个显示仪表板的链接。
现在发生的情况是它成功登录,然后进入主页后,它抛出错误
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
(Session info: chrome=71.0.3578.98)
所以我不确定它说的是哪个元素过时并且它的仪表板点击不起作用......有人可以提出什么问题......所以我使用了一个名为 truepath 的 chrome 扩展来了解该仪表板链接的确切 xpath ......它说像
//div[@class='sn-widget-list-title'][contains(.,'Dashboards')]
当我使用另一个名为 Element locator 的工具时,我得到了如下的 xpath
//*[@id="b9169d55873212001ac119fa84e3ece3"]/div[1]/div[1]
当我对该仪表板链接进行正常检查时,然后复制选择器和 xpath,我得到这样的结果:
//*[@id="b9169d55873212001ac119fa84e3ece3"]/div/div
CSS选择器:
#b9169d55873212001ac119fa84e3ece3 > div > div
这是该仪表板的 html 检查
我尝试了以上所有方法来定位该元素,然后单击但没有提出任何建议。
解决方案
推荐阅读
- ios - 如何用可编码的方式编写变压器?
- python - RuntimeError:模型类 users.models.User 未声明显式 app_label 并且不在 INSTALLED_APPS 中的应用程序中
- sapui5 - 获取当前重点元素
- swift - Swift WatchOS 错误:控制器的接口描述(“图像”)中的未知属性
- symfony - 配置键“page_range”分页
- c# - 如何使用 C# 驱动程序在 MongoDb 中嵌套在字典(文档数组)中的列表中插入值?
- microsoft-dynamics - 其中哪一个更好更快?
- java - 三元运算符的奇怪行为
- amazon-web-services - ELB目标组-ECS启动任务时不会自动添加目标
- amazon-web-services - 在 AWS { "errorMessage": "Unable to import module 'lambda'" } (S3+Lambda) 中出现此错误