【问题标题】:Selenium doesn't Find Elements while page is loading [duplicate]Selenium 在页面加载时找不到元素 [重复]
【发布时间】:2026-01-08 10:40:02
【问题描述】:

我正在尝试从 play.typeracer.com 获取文本,但是当我参加比赛时,页面开始加载很多内容,例如广告。但是,尽管页面已完全加载,Selenium 仍会等待广告加载,然后再执行代码行。

我已经尝试过使用页面加载超时,但正如我所说,网站已加载,它只是等待广告。有趣的是,在我的普通浏览器上,广告会立即加载。但这可能是因为网站缓存。

有什么方法可以停止额外的页面加载,或者只是在加载时查找元素?

【问题讨论】:

  • 您可以使用https://selenium-python.readthedocs.io/waits.html 并等待显示特定元素。
  • 我去看看,谢谢
  • 如果不想等待,则需要将页面加载策略设置为无。

标签: c# selenium selenium-chromedriver


【解决方案1】:

我的期望是您需要WebDriverWaitExpectedConditions 类的组合,因为您要与之交互的元素可能不会立即在DOM 中可用。

建议使用的代码:

var wait = new OpenQA.Selenium.Support.UI.WebDriverWait(driver, TimeSpan.FromSeconds(10));
var enterRace = wait
    .Until(SeleniumExtras.WaitHelpers.ExpectedConditions
    .ElementExists(By.XPath("//a[text()='Enter a typing race']")));
enterRace.Click();

更多信息:

【讨论】: