【问题标题】:Selenium Webdriver 2.25.0 Java Firefox - Unable to identify Google Search Result WebelementSelenium Webdriver 2.25.0 Java Firefox - 无法识别 Google 搜索结果 Webelement
【发布时间】:2012-08-09 11:51:19
【问题描述】:

我是 Selenium 2.0 Java Webdriver 的菜鸟。试着自学。但停留在识别 Webelement 上。我试图点击谷歌的搜索结果。我正在搜索字符串“Selenium Download”并尝试单击第一个结果。它在 Firebug 中的标识如下 -

<a class="l" onmousedown="return rwt(this,'','','','1','AFQjCNF012aUD3cMR2x-qIQl2u6suxLnlw','','0CE0QFjAA',null,event)" href="http://www.google.co.in/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CE0QFjAA&url=http%3A%2F%2Fseleniumhq.org%2Fdownload%2F&ei=Wb8oULKfHsjsrAf4_IDICQ&usg=AFQjCNF012aUD3cMR2x-qIQl2u6suxLnlw">
<em>Downloads</em>
-
<em>Selenium</em>
</a>

XPath:/html/body/div[5]/div[2]/div/div[4]/div[2]/div[2]/div[2]/div[2]/div/ol /li/div/h3/a

CSSPath: html body#gsr.vsh div#main div div#cnt.mdm div.mw div#rcnt div#center_col div#res.med div#search div#ires ol#rso li.g div.vsc h3 .ral

但我未能唯一地识别它。我尝试了类似下面的东西-

public static void main (String[] args) {

    WebDriver ffx1 = new FirefoxDriver();
    ffx1.get("http://www.google.com");
    ffx1.manage().window().maximize();
    ffx1.findElement(By.className("xbtn")).click();
    ffx1.findElement(By.name("q")).sendKeys("saikat");
    ffx1.findElement(By.name("btnG")).click();
    ffx1.findElement(By.xpath(My Expression));

}

请帮帮我。

【问题讨论】:

    标签: firefox selenium firebug webdriver


    【解决方案1】:

    我认为有两点需要清除:

    首先 - 您拥有的定位器可能是不正确的 谷歌搜索页面上第一个搜索元素的 xpath 将是 .//*[@id='rso']/li[1]/div/h3/a

    第二 - 单击搜索按钮后,搜索结果确实需要几秒钟才能显示在搜索结果页面上。因此,必须插入一些等待时间。我在下面的代码中使用了 30 秒的隐式等待。隐式等待将告诉 Webdriver 在尝试查找一个或多个元素时轮询 DOM 一段时间(如果它们不是立即可用的)。

    现在,如果您尝试使用以下代码,它应该可以工作

    import java.util.concurrent.TimeUnit;
    
        public static void main(String[] args) throws InterruptedException {
            WebDriver ffx1 = new FirefoxDriver();
            ffx1.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
            ffx1.get("http://www.google.com");
            ffx1.manage().window().maximize();
            ffx1.findElement(By.name("q")).sendKeys("saikat");
            ffx1.findElement(By.name("btnG")).click();
            ffx1.findElement(By.xpath(".//*[@id='rso']/li[1]/div/h3/a")).click();
    
        }
    

    【讨论】:

    猜你喜欢
    • 2018-09-21
    • 1970-01-01
    • 2012-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-30
    • 1970-01-01
    相关资源
    最近更新 更多