页面加载时Selenium找不到元素

时间:2019-07-07 09:00:36

标签: c# selenium selenium-chromedriver

我正在尝试从play.typeracer.com中获取文字,但是当我参加比赛时,页面开始加载很多内容,例如广告。但是页面完全加载完毕,Selenium在执行代码行之前会等待广告加载。

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

是否可以以某种方式停止其他页面的加载,或者只是在加载时查找元素?

1 个答案:

答案 0 :(得分:0)

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

建议使用的代码:

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();

更多信息: