0

我正在使用 Selenium Webdriver 来测试网页。网页http://www.leaseplan.nl/contact/index.asp有两个按钮,一个带有按钮文本“Zoeken”的按钮,一个带有按钮文本“Verstuur”的按钮。我想通过使用带有以下代码的 XPath 或 CssSelector 来单击带有按钮文本“Verstuur”的按钮:

driver.FindElement(By.XPath("/html/body/div[3]/div[2]/div[2]/form/fieldset/a/span")).Click();
driver.FindElement(By.CssSelector("fieldset.contact_form > a.button > span.button_center")).Click();

但是使用上述任一代码行,在带有文本“Zoeken”的按钮上被点击。

这个按钮有一个非常相似的 CssSelector 和 XPath:

fieldset.header_search a.button span.button_center

/html/body/div[3]/div/form/fieldset/a/span[2]

有谁知道如何解决这个问题?

4

4 回答 4

1

用 cssSelector 试试这个,告诉我它是否有效。对于“verstuur”:

By.cssSelector("div.content form a.button")

解决方案 :

好的,我找到了你的问题。您的 xpath 很好,但是现在,您在单击时的操作提交了第一个表单,因此该表单带有“Zoeken”。

onclick="document.forms[0].submit();" // submit the 1st form, the bad one !

尝试这个 :

onclick="document.forms["form"].submit();" // submit the 2nd form, the good one !
//or
onclick="document.forms[1].submit();"

证明:Jsfiddle

于 2013-04-04T12:20:45.557 回答
0

ZOEKEN 的 xpath/html/body/div[3]/div/form/fieldset/a/span[2]

VERSTUUR 的 xpath/html/body/div[3]/div[2]/div[2]/form/fieldset/a/span[2]

于 2013-04-03T12:39:27.157 回答
0

尝试这个:

driver.FindElement(By.XPath("//span[text()='Verstuur']")).click();

编辑:

我认为您想学习 Selenium,这就是您使用 3rd 方网站的原因。如果你真的想学习 Selenium,可以找一些开源应用程序来自动化。这是一个很好的自动化应用程序 - http://sourceforge.net/projects/sugarcrm/files/1%20-%20SugarCRM%206.5.X/FastStack/

下载最新版本并安装。

在此处查找有关该网站和硒的更多信息。它是那么好..

http://selftechy.com/2011/02/05/introduction-to-selenium-web-application-test-automation-tool

于 2013-04-03T12:48:43.857 回答
0

佐肯:driver.findElement(By.xpath("//div[1]/form/fieldset/a/span[2]")).click();

维斯图尔:driver.findElement(By.xpath("//div[2]/form/fieldset/a/span[2]")).click();

使用 xpath 很容易但很慢。

于 2013-04-10T12:09:12.517 回答