【发布时间】:2020-12-05 16:24:50
【问题描述】:
我在 Selenium 执行中遇到了不一致的问题。 我在下面粘贴的代码 sn-p 的最后一行执行不一致。有时它可以工作,有时它会抛出一个错误,指出找不到元素。在尝试执行点击之前,Selenium 不会“阻止”元素出现吗?我使用 Selenium IDE 生成了它。我在这里缺少什么?
self.driver.find_element(By.CSS_SELECTOR, ".dx-ellipsis:nth-child(2)").click()
self.driver.switch_to.default_content()
self.driver.find_element(By.CSS_SELECTOR, "#PageContentPlaceHolder_TimeControlSplitter_TimeControlContent_TimesheetEntrySplitter_TimesheetDetailsMenu_DXI0_T > .dxm-contentText").click()
【问题讨论】:
-
如果元素是JS动态加载的,如果你在加载之前搜索它们,selenium可能找不到元素。
-
您想到的“阻塞”称为隐式等待。请参阅下面有关显式等待的答案。这是更好的约定。
标签: python selenium selenium-webdriver iframe webdriverwait