使用c#winforms和selenium webdrivers。
我试过这个
driver2.FindElement(By.XPath("//div[@class='ad-ttl']/a")).Click();
为了点击它但我没有工作。
HTML代码:
<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总是也会改变,所以任何解决方案都可以解决这个问题吗?基本上它上面的一切都会改变。
答案 0 :(得分:0)
请尝试以下任一代码点击链接: -
1 - 检查标记'a'的元素,其 id以'yui'开头,并且具有**两个子元素内部HTML /文本的“强大”分别为“勒布朗”和“詹姆斯”**: -
driver2.FindElement(By.XPath("//a[starts-with(@id,'yui') and //strong[.='LeBron'] and //strong[.='James']]")).Click();
或强>
2 - 检查标记'a'的元素, id以'yui'开头,并包含'href '包含文本的值的属性'?p = Lebron + James + Cleveland': -
driver2.FindElement(By.XPath("//a[starts-with(@id,'yui') and contains(@href,'?p=Lebron+James+Cleveland')]")).Click();
答案 1 :(得分:0)
您可以在&#34; CSS &#34;中使用子字符串匹配。
匹配前缀(因为您的ID始终包含&#39; yui&#39;)
CSS = DIV [ID ^ =&#39;衣&#39;]一个
参考:
https://saucelabs.com/resources/selenium/css-selectors
此致