我试图让我的程序坐在一个网页上,等待一篇文章中的特定tagName出现。问题是,我需要Selenium在单击它之前检查包含两个tagNames的文章,这是我感到困惑的地方。按照我现在设置代码的方式,它不会点击任何地方。它只是放在页面上,我怀疑这是因为有不止一篇文章具有相同的主tagName,我试图找到这些文章。下面是HTML:
<article>
<div class ="inner-article">
<a href ="/shop/shirts/iycbmgtqw/x9vdawcjg" style="height:150px;">
<img alt="Xrtqh7ar444" height="150" src="//d17ol771963kd3.cloudfront.net/120885/vi/xrTQH7Ar444.jpg" width="150">
</a>
<h1>
<a href="/shop/shirts/iycbmgtqw/x9vdawcjg" class="name-link">EXAMPLE_CODE</a>
</h1>
<p>
<a href="/shop/shirts/iycbmgtqw/x9vdawcjg" class="name-link">EXAMPLE_COLOUR</a>
</p>
</div>
</article>此页面中的所有其他项都具有相同的类,有些项具有相同的tagNames。我想在一篇文章中搜索两个tagNames的特定组合。我意识到xPath是一种选择,但我想在知道xPath之前对其进行编码,其中项目的名称是唯一可用的信息。
下面是我目前正在处理的代码:
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromMinutes(10));
IWebElement test = driver.FindElement(By.TagName(textBox12.Text));
test.Click();其中textBox12.Text 12.文本为"EXAMPLE_CODE“。我是否正确地假设WebDriver没有单击任何东西,因为tagName "EXAMPLE_CODE“中有多个元素,是否有可能让它先查找"EXAMPLE_CODE",然后检查次要元素:"EXAMPLE_COLOUR"?
谢谢!!
发布于 2016-10-16 07:18:33
您使用By.TagName不正确。标记是指要查找的元素的类型。在这种情况下,链接是'a‘。或者如果是div,它就是div。找到链接的标签名的正确方法是- By.TagName("a")。
您需要匹配文本,并且需要使用xpath。假设代码是唯一的,您应该尝试。
XPath来获取href - //div[class='inner-article']/h1/a[.=EXAMPLE_CODE]代码
XPath以获得href - //div[class='inner-article']/h1/a[.=EXAMPLE_CODE]/following-sibling::a的颜色
https://stackoverflow.com/questions/40067576
复制相似问题