2

我想在我的页面上测试我的输入字段的标签顺序,我想我可以让它看起来像这样:

#get the number of inputs on the page
$input = $this->elements($this->using('css selector')->value('div.wrapper input'));

for ($i=1; $i <= count($input); $i++) 
{ 
    #just to set focus on the field i know is the first
    if($i == 1)
    {
    $this->byId('myFirstField')->value($i);
    }   
    else
    {
    $this->keysSpecial('TAB');
    $this->get current element in focus->value($i);
    }       
}

然后我可以坐在那里查看数字是否以正确的顺序写入,或者完全自动化并断言每个字段的值都是正确的,如下所示:

$this->assertEquals($this->byId('myFirstField')->value(), 1);
$this->assertEquals($this->byId('mySecondField')->value(), 2);

依此类推,但是您可以确保此代码不起作用,我不知道如何告诉 phpunit 在当前输入字段中键入内容。有没有一种方法可以调用焦点元素?即$this->inFocus()->value($i); ?

顺便说一句,我不能使用 $input[$i-1]->value($i); 因为选项卡顺序和字段的索引不会相同。

4

2 回答 2

1

这是一个使用 java 的基本示例,我猜应该能够在 php 中使用模拟解决方案。

TabOrderElements.class{
public WebElement element1 = driver.findElement(By.id(""));
public WebElement element2 = driver.findElement(By.id(""));
public WebElement element3 = driver.findElement(By.id(""));
public WebElement element4 = driver.findElement(By.id(""));
public WebElement element5 = driver.findElement(By.id(""));
}

public void validateTabOrder(){
    TabOrderElements tabOrderElements = new TabOrderElements();

    public  String[] tabOrder = {
      "element1",
      "element2",
      "element3",
      "element4",
      "element5"
    };

    for (String currentField: tabOrder ){    
        WebElement expected = (WebElement)elements.getClass().getField(currentField).get(tabOrderElements );
        WebElement actual = driver.switchTo().activeElement();
        String assertMessage    = "Incorrect tab order when trying to tab to: "+fieldName;
        Assert.assertEquals(assertMessage, expected, actual);
        driver.switchTo().activeElement().sendKeys(Keys.TAB);
    }
}
于 2014-06-18T08:31:15.040 回答
0

我不知道 PHP 中的命令是什么,但是在 Python 中,您可以使用以下命令:

element = driver.find_element_by_id("id of the field")
element.sendKeys(Keys.TAB, "Text you want to populate the field with")

应该有一个 PHP 等价物,还有这个页面:http ://docs.seleniumhq.org/docs/02_selenium_ide.jsp#building-test-cases也有您可能需要的信息。

于 2014-06-17T15:56:54.763 回答