当没有 id 时,如何在 Selenium 中单击此图像 link?
How would I click this image link in Selenium when there is no id?
我正在尝试单击以转到 href 引用的位置。我不确定我将使用什么代码来完成此操作,因为没有明显的 ID。请记住,href 引用的 link 可以随时更改。
<ul style="display: block; max-height: 230px; width: 129px; margin: auto; transition: all 500ms ease-in-out 0s;" id="pubCarousel" class="elastislide-list"><li style="width: 100%; max-width: 129px; max-height: 230px;">
<a href="/MTR/FBSC/en/36548659-040e-4185-9ad7-c9472d8fc36e/Page?storeId=bfd80755-bbfa-49b4-92ac-2f62ee2d1f83&postalCode=P3E3Z9">
<img src="http://mtr.ca.flyerservices.com/cached_images/pages/FBSC_45e00411-b791-44f7-8310-a77dc39d4fbd_111_53284_FB_E_01_B1_V1_E18.p1.jpg" alt="" border="0">
<p class="caption">
<span class="title">Version 1</span>
<br>
<span>July 16, 2015 to July 22, 2015</span>
</p>
</a>
</li></ul>
正如 skandigraun 在他的评论中所说,还有其他方法可以使用 Selenium 查找元素。我经常不得不使用 CSS 选择器和 xpath 选择器。
为了找到选择器所需的 CSS 或 xpath,我通常使用 chrome 开发人员工具或 firebug 右键单击 -> "Inspect element" 然后按右键单击所需的元素 -> "Copy CSS path" 或 "Copy XPath"
driver.findElement(By.cssSelector("#pubCarousel li a img")).click();
或 XPath
driver.findElement(By.xpath("//*[@id=\"pubCarousel\"]/li/a/img")).click();
很遗憾我不在电脑旁,所以我现在无法测试它们。 XPath 应该适合你,但我不确定 CSS 是否可以不做一点调整。
我正在尝试单击以转到 href 引用的位置。我不确定我将使用什么代码来完成此操作,因为没有明显的 ID。请记住,href 引用的 link 可以随时更改。
<ul style="display: block; max-height: 230px; width: 129px; margin: auto; transition: all 500ms ease-in-out 0s;" id="pubCarousel" class="elastislide-list"><li style="width: 100%; max-width: 129px; max-height: 230px;">
<a href="/MTR/FBSC/en/36548659-040e-4185-9ad7-c9472d8fc36e/Page?storeId=bfd80755-bbfa-49b4-92ac-2f62ee2d1f83&postalCode=P3E3Z9">
<img src="http://mtr.ca.flyerservices.com/cached_images/pages/FBSC_45e00411-b791-44f7-8310-a77dc39d4fbd_111_53284_FB_E_01_B1_V1_E18.p1.jpg" alt="" border="0">
<p class="caption">
<span class="title">Version 1</span>
<br>
<span>July 16, 2015 to July 22, 2015</span>
</p>
</a>
</li></ul>
正如 skandigraun 在他的评论中所说,还有其他方法可以使用 Selenium 查找元素。我经常不得不使用 CSS 选择器和 xpath 选择器。
为了找到选择器所需的 CSS 或 xpath,我通常使用 chrome 开发人员工具或 firebug 右键单击 -> "Inspect element" 然后按右键单击所需的元素 -> "Copy CSS path" 或 "Copy XPath"
driver.findElement(By.cssSelector("#pubCarousel li a img")).click();
或 XPath
driver.findElement(By.xpath("//*[@id=\"pubCarousel\"]/li/a/img")).click();
很遗憾我不在电脑旁,所以我现在无法测试它们。 XPath 应该适合你,但我不确定 CSS 是否可以不做一点调整。