Selenium - 区分相同 <articles>,C#
Selenium - Discerning Between Identical <articles>, C#
我试图让我的程序位于网页上并等待文章中的特定 tagName 出现。问题是,我需要 Selenium 在单击文章之前检查它是否包含两个标记名称,这就是我感到困惑的地方。我现在设置代码的方式不会点击任何地方。它只是位于页面上,我怀疑是因为有不止一篇文章具有我要查找的相同主标签名称。这是 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>
此页面上的所有其他项目都具有相同的 class,有些具有相同的标签名称。我想搜索文章中何时存在两个 tagNames 的特定组合。我知道 xPath 是一个选项,但我想在知道 xPath 之前对其进行编码,其中项目的名称是唯一可用的信息。
这是我目前正在使用的代码:
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromMinutes(10));
IWebElement test = driver.FindElement(By.TagName(textBox12.Text));
test.Click();
其中 textBox12.Text 是 "EXAMPLE_CODE"。我是否正确地假设 WebDriver 没有点击任何东西,因为有多个元素带有 tagName "EXAMPLE_CODE",并且有没有一种可能的方法让它首先查找 "EXAMPLE_CODE" 然后检查辅助: "EXAMPLE_COLOUR"?
谢谢!!
您使用 By.TagName
不正确。标签是指您要查找的元素类型。在这种情况下,link 是 'a'。或者在 div 的情况下是 'div'。使用标记名查找 link 的正确方法是 - By.TagName("a")
.
您需要匹配文本并且需要使用 xpath。假设代码是唯一的,您应该尝试。
获取代码 href 的 XPath -- //div[class='inner-article']/h1/a[.=EXAMPLE_CODE]
获取颜色 href 的 XPath -- //div[class='inner-article']/h1/a[.=EXAMPLE_CODE]/following-sibling::a
我试图让我的程序位于网页上并等待文章中的特定 tagName 出现。问题是,我需要 Selenium 在单击文章之前检查它是否包含两个标记名称,这就是我感到困惑的地方。我现在设置代码的方式不会点击任何地方。它只是位于页面上,我怀疑是因为有不止一篇文章具有我要查找的相同主标签名称。这是 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>
此页面上的所有其他项目都具有相同的 class,有些具有相同的标签名称。我想搜索文章中何时存在两个 tagNames 的特定组合。我知道 xPath 是一个选项,但我想在知道 xPath 之前对其进行编码,其中项目的名称是唯一可用的信息。
这是我目前正在使用的代码:
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromMinutes(10));
IWebElement test = driver.FindElement(By.TagName(textBox12.Text));
test.Click();
其中 textBox12.Text 是 "EXAMPLE_CODE"。我是否正确地假设 WebDriver 没有点击任何东西,因为有多个元素带有 tagName "EXAMPLE_CODE",并且有没有一种可能的方法让它首先查找 "EXAMPLE_CODE" 然后检查辅助: "EXAMPLE_COLOUR"?
谢谢!!
您使用 By.TagName
不正确。标签是指您要查找的元素类型。在这种情况下,link 是 'a'。或者在 div 的情况下是 'div'。使用标记名查找 link 的正确方法是 - By.TagName("a")
.
您需要匹配文本并且需要使用 xpath。假设代码是唯一的,您应该尝试。
获取代码 href 的 XPath -- //div[class='inner-article']/h1/a[.=EXAMPLE_CODE]
获取颜色 href 的 XPath -- //div[class='inner-article']/h1/a[.=EXAMPLE_CODE]/following-sibling::a