在 C# 中使用 Selenium Web 驱动程序查找元素

本文关键字:Web 驱动程序 查找 元素 Selenium | 更新日期: 2023-09-27 18:31:17

所以我一直在学习如何在C#中使用Selenium为项目做一些自动化测试。但是,我在这个问题上遇到了障碍。我一直在试图找出点击此网页上的以下链接的方法。

以下是我尝试的目标:

<A class='PortalLink' HREF="https://mywebsite.com/myprograms/launchprogram.jsp?" onClick="setUser('login','password');"><span>MyProgram</span></A>

ClassName搜索没有发现任何东西。虽然有多个,但我只是想看看我是否能检测到它们的存在。

By.ClassName("PortalLink")

我尝试使用 CssSelector 进行基于href的搜索,但这也失败了。

By.CssSelector("[href*='https://mywebsite.com/myprograms/launchprogram.jsp?']")

最后,我尝试使用XPath并按类和跨度内容搜索,但这也未能找到链接。

By.XPath("//A[contains(@class,'PortalLink') and span[text()='MyProgram']]")))

有问题的网页包含 2 个框架,我已经尝试了这两个框架。

我正在等待 200 秒才超时。我做错了什么?提前感谢任何帮助!

在 C# 中使用 Selenium Web 驱动程序查找元素

假设这个元素在 ajax 期间没有附加到 DOM,你的语句应该是

By.CssSelector("a.PortalLink[href*='launchprogram.jsp']")

如果有多个这些链接,那么我们需要在父子层次结构中更进一步,因为此链接没有更多使此链接唯一的属性。

如果您可以发布此链接的父html,那么我们可以建议更多选项,

你能试试这些吗?

 //span[contains(text(),'MyProgram']
//span[contains(text(),'MyProgram']/../