Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当没有id时,如何在Selenium中单击此图像链接?_Java_Html_Selenium_Webdriver - Fatal编程技术网

Java 当没有id时,如何在Selenium中单击此图像链接?

Java 当没有id时,如何在Selenium中单击此图像链接?,java,html,selenium,webdriver,Java,Html,Selenium,Webdriver,我正在尝试单击以转到href引用的位置。由于没有明显的id,我不确定用什么代码来完成此任务。请记住href引用的链接可以随时更改 <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

我正在尝试单击以转到href引用的位置。由于没有明显的id,我不确定用什么代码来完成此任务。请记住href引用的链接可以随时更改

<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>



正如skandigraun在评论中所说,使用硒元素还有其他方法。我经常不得不使用CSS选择器和xpath选择器

为了找到选择器所需的CSS或xpath,我通常使用chrome developer tools或firebug右键单击->检查元素,然后右键单击所需元素->复制CSS路径或复制xpath

或用于XPath

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

不幸的是,我离开了我的电脑,所以我现在无法测试它们。XPath一个应该适合您,但我不确定CSS一个是否可以不做一些调整就工作。

使用selenium还可以找到其他方法来查找元素。例如,您可以使用css选择器:By.cssSelector(“img[src^=”),也可以使用By.tagName(“img”),或者你可以使用xPath,或者你可以搜索锚标记。第二个成功了。就记录而言,我没有尝试第一个,所以它可能也是正确的。谢谢,伙计。我很高兴它对你有效!一旦你习惯了,Selenium可以成为一个非常强大的工具。
driver.findElement(By.xpath("//*[@id=\"pubCarousel\"]/li/a/img")).click();