使用selenium和webdriver单击链接

使用selenium和webdriver单击链接,selenium,webdriver,Selenium,Webdriver,我一直在尝试对其执行selenium任务: 在中,有一个按钮,我必须点击它,然后等待10秒。我是这样做的: 导航至第页: base.driver.navigate().to("http://suvian.in/selenium/1.7button.html"); 点击按钮: //base.driver.findElement(By.xpath("/html/body/div[1]/div/div/div/div/h3[2]/a")); base.driver.findEleme

我一直在尝试对其执行selenium任务:

在中,有一个按钮,我必须点击它,然后等待10秒。我是这样做的: 导航至第页:

base.driver.navigate().to("http://suvian.in/selenium/1.7button.html");
点击按钮:

//base.driver.findElement(By.xpath("/html/body/div[1]/div/div/div/div/h3[2]/a"));
        base.driver.findElement(By.linkText("Click Me"));
此步骤失败

等待10秒钟:

TimeUnit.SECONDS.sleep(waitTime);
问题:

1-点击按钮失败。尽管如此,我要求找到包含xpath和文本的链接,但它找不到

2-我的解决方案对延迟webdriver的活动是否正确

请尝试以下代码,用于单击“单击我”按钮,在我的本地计算机上尝试: driver.findElementBy.xpath//div[contains@class,'intro-message'].findElementBy.partialLinkTextClick Me.click

对以上代码的解释:Thumb规则是从DOM的父元素开始尝试。在上面的文章中,按钮的父元素是div class=intro message。找到父元素后,接下来查找子元素。在您的情况下,是带有链接文本“单击我”的按钮

//xpath/html/body/div[1]/div/div/div/div/div/div/h3[2]/a; base.driver.findElementBy.linktext单击我

而且,你写的方式也不正确。如果中间添加了更多元素(如新div或新按钮),则此操作将失败。尽量避免这种情况

是的,在目前的情况下,你等待的方式是正确的。但对于其他用例,让应用程序显式等待可能是不对的。
你是什么意思?我在本地的driver.findElementBy.xpath//div上试过了[contains@class,'intro-message'].findElementBy.partialLinkTextClick Me.click;它成功了。你在使用哪个浏览器???@kamyarasstesh接受它作为一个解决方案,这将使我有动力回答。只是个初学者