2015-07-19 46 views
0

我正在尝试单击以转到href所引用的位置。由于没有明显的ID,我不确定我会完成这个代码。请记住,href引用的链接可以随时更改。如何在没有身份证的情况下点击Selenium中的此图像链接?

<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&amp;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> 
+0

还有其他方法可以找到使用硒的元素。例如,你可以使用css选择器:By.cssSelector(“img [src^=''http://mtr.ca.flyerservices.com/cached_images']”)或者你可以使用By.tagName(“img”),或者您可以使用xPath,或者您可以搜索锚标记。 – skandigraun

回答

2

正如skandigraun在他的评论中说的,还有其他方法可以找到使用Selenium的元素。我经常不得不使用CSS选择器以及xpath选择器。

寻找选择器所需的CSS或xpath我通常使用chrome开发工具或firebug右键单击 - >“检查元素”,然后右键单击所需元素 - >“复制CSS路径”或“复制XPath”

driver.findElement(By.cssSelector("#pubCarousel li a img")).click(); 

或XPath的

driver.findElement(By.xpath("//*[@id=\"pubCarousel\"]/li/a/img")).click(); 

我是从我的电脑不幸离开,所以我不能对它们进行测试了现在。 XPath之一应该为你工作,但我不确定如果CSS的一个将没有一点调整。

+0

第二个人工作。为了记录,我没有尝试第一个,所以它也可能是正确的。谢啦。 –

+0

我很高兴它为你工作!一旦习惯了硒,硒可以成为一个非常强大的工具。 – iamdudeman

相关问题