selenium(phpunit)点击下拉链接

时间:2014-03-17 10:18:54

标签: selenium drop-down-menu phpunit mouseover

我希望能够通过下载使用selenium和phpunit点击链接。我不知道如何让它发生,任何人都可以向我展示示例或相关教程,帖子或任何可以帮助我弄清楚的东西。

当我尝试点击元素而不将鼠标放在下拉列表上时出现此错误:

元素目前不可见,因此可能无法与命令进行交互....

感谢。

编辑: 当我说"下降"我并不是指经常选择。它更像弹出窗口 你可以在这里看到这个例子: http://investing.com

看看他们如何构建菜单我希望能够点击'技术' - > '斐波那契计算器'例如。

2 个答案:

答案 0 :(得分:0)

查看此帖子: Selenium: How to select an option from a select menu?

您可以找到有关此here

的更多信息
select(selectLocator, optionLocator)

Arguments:

    selectLocator - an element locator identifying a drop-down menu
    optionLocator - an option locator (a label by default)

Select an option from a drop-down using an option locator.

Option locators provide different ways of specifying options of an HTML Select element (e.g. for selecting a specific option, or for asserting that the selected option satisfies a specification). There are several forms of Select Option Locator.

    label=labelPattern: matches options based on their labels, i.e. the visible text. (This is the default.)
        label=regexp:^[Oo]ther
    value=valuePattern: matches options based on their values.
        value=other
    id=id: matches options based on their ids.
        id=option1
    index=index: matches an option based on its index (offset from zero).
        index=2

If no option locator prefix is provided, the default behaviour is to match on label.

致Dave Hunt的信用


我用的是什么:

$search13 = $this->webDriver->findElement(WebDriverBy::id('id_of_dropdown_field'));
$search13->click(); // Clicking on the dropdownfield

$this->webDriver->getKeyboard()->pressKey('ARROW_DOWN'); // Will go down in your dropdown selection )

sleep(1);

$this->webDriver->getKeyboard()->pressKey('ENTER'); // Enter for submitting your selection

编辑: http://www.anitpatel.net/2012/02/25/selenium-webdriver-how-to-click-on-a-hidden-link-or-menu/ 这个在java中解释它,但基本上他做的是鼠标悬停/等待。 然后他点击元素。 我不是一个java天才,但它是一个如何使用它的例子。

您可以使用:

string mouseOver(string $locator)

这模拟用户将鼠标悬停在指定元素上。 http://docs.tadiavo.com/phpunit/www.phpunit.de/pocket_guide/3.1/en/selenium.html

答案 1 :(得分:0)

使用所需选项值的xpath检查元素是否可见。

$this->isElementPresent($xpath); $this->click($xpath);

如果为true,则click()方法选择指定的选项。