C#Selenium找不到WebDriverWait的元素,我可以看到并手动点击它

时间:2017-06-16 02:05:27

标签: c# google-chrome selenium

我试图找到的元素: See the element here

        WebDriverWait wait = new WebDriverWait(browser, TimeSpan.FromSeconds(60));
        wait.Until(ExpectedConditions.ElementExists(By.XPath("//use[@xlink:href='#core_mail']")));

        File.WriteAllText("html.txt", browser.PageSource);

只是超时...并且页面在60秒之前加载。

1 个答案:

答案 0 :(得分:1)

svg有一个默认命名空间。你必须考虑到它:

//svg:use[@xlink:href='#core_mail']

或使用local-name()忽略它:

//*[local-name() = 'use' and @xlink:href='#core_mail']

虽然,公平地说,你不必深入了解标记,你的“电子邮件”按钮在树中更高 - 看到屏幕截图中部分可见的第一个父元素 - 这是你想要的元素你可能想要找到它。