在 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 也总是改变,所以有什么解决方案吗?基本上它上面的一切都总是改变。
尝试以下任一代码单击链接:-
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
问候