在 c# 中单击带有随机数的 id

本文关键字:随机数 id 单击 | 更新日期: 2023-09-27 18:33:51

使用 c# winforms 和 selenium webdrivers.

我试过这个

driver2.FindElement(By.XPath("//div[@class='ad-ttl']/a")).Click();

为了点击它,但我没有工作。

网页代码 :

<div id="yui_3_10_0_1_1418194162300_146" class="ad-ttl"><a id="yui_3_10_0_1_1418194162300_145" href="http://ri.search.yahoo.com/_ylt=AwrTcdjy7IdUt3sATg9jmolQ;_ylu=X3oDMTB2MDNwMXMxBHNlYwNvdi10b3AEY29sbwNncTEEdnRpZAMEcG9zAzE-/RV=2/RE=1418222962/RO=10/RU=http%3a%2f%2f2668877.r.msn.com%2f%3fld%3dd33WakoDkJAIMxn5dGh8YwQDVUCUx0AKspPeVBIRqpFXcgYxytW-8aith7k2jbZMjUQNoLg76hIiV1F-jmHcvooccYvps7YCw2Ma04LDJIzxVXvVI1D8uWvNQZu6l6BzAZyCkpSURwY7WpZxCcUbZvL4AqxnA%26u%3dwww.teamspiritandfitness.com%252flebron-james-jerseys%252f/RK=0/RS=7FYmf.oFNCuguXRDjriSVwIXsLQ-?p=Lebron+James+Cleveland" target="_blank" class=""><strong>LeBron</strong> <strong>James</strong> Jerseys $89 - All Stitched and Free Shipping</a></div>

正如您所知,ID永远不会相同,但它总是包含" yui",并且单击上面的类不起作用。 href 也总是改变,所以有什么解决方案吗?基本上它上面的一切都总是改变。

在 c# 中单击带有随机数的 id

尝试以下任一代码单击链接:-

1- 检查带有标签"a"的元素,其 id 以"yui"开头,并且具有 ** 两个子元素"strong",其中 innerHTML/text 分别作为 'LeBron' 和 'James'**:-

driver2.FindElement(By.XPath("//a[starts-with(@id,'yui') and //strong[.='LeBron'] and //strong[.='James']]")).Click();

2- 检查带有标签"a"的元素,其 id 以"yui"开头,并包含"href"属性,其值包含文本"?p=勒布朗+詹姆斯+克利夫兰":-

driver2.FindElement(By.XPath("//a[starts-with(@id,'yui') and contains(@href,'?p=Lebron+James+Cleveland')]")).Click();

您可以在"CSS"中使用子字符串匹配。

  • 匹配前缀(因为您的 ID 始终包含"Yui")

    css=div[id^='yui']a

引用自 :

https://saucelabs.com/resources/selenium/css-selectors

问候