在PHP中使用SeleniumWeb驱动程序获取元素的ID
我正在用PHP/MySQL/jQuery构建一个应用程序,它向用户显示一个项目列表,底部有一个空白字段用于添加新项目。有一个Ajax模糊事件,它将数据保存到数据库中,然后用一个常规行替换“新”行,其中包括您输入的文本和一个编辑按钮。如果单击“编辑”按钮,则可以将文本转换回输入。所有这些都有类似item_n和edit_n的ID,其中n是数据库中的ID。我真正想要的是n 使用Selenium(我一直关注Web驱动程序,但我对使用IDE持开放态度),我想创建一个新项目,然后单击编辑按钮并对其进行更改,但我不知道编辑按钮的ID 我已经能够创建测试,其中我创建了一个新行,然后使用assertTextPresent确认它在那里,但是我找不到一种方法来获取新行的ID(这将是项) 我尝试使用:contains,但它总是返回空字符串。我尝试了一些CSS和Xpath选择器,从常规到特定:在PHP中使用SeleniumWeb驱动程序获取元素的ID,php,selenium,selenium-webdriver,Php,Selenium,Selenium Webdriver,我正在用PHP/MySQL/jQuery构建一个应用程序,它向用户显示一个项目列表,底部有一个空白字段用于添加新项目。有一个Ajax模糊事件,它将数据保存到数据库中,然后用一个常规行替换“新”行,其中包括您输入的文本和一个编辑按钮。如果单击“编辑”按钮,则可以将文本转换回输入。所有这些都有类似item_n和edit_n的ID,其中n是数据库中的ID。我真正想要的是n 使用Selenium(我一直关注Web驱动程序,但我对使用IDE持开放态度),我想创建一个新项目,然后单击编辑按钮并对其进行更改,
$elem = $this->_session->element('css', 'div.item_row div.item_title:contains("'.$new_item.'")');
$elem = $this->_session->element('xpath', '//div:contains("'.$new_task.'")');
我还尝试只获取列表中倒数第二个元素(因为最后一个是新行字段),但我真的不想依赖排序
下面的问题表明Selenium RC可以调用JavaScript:
我知道Web驱动程序支持RC,但我不确定Web驱动程序是否支持上述RC命令。尽管如此,我还是尝试了一下。我为获取ID而编写的JavaScript函数返回null。我确实在Selenium之外测试了这个功能,所以我知道它在工作
我使用的是Facebook PHP Web驱动程序实现,但我不喜欢它:
任何帮助都将不胜感激。谢谢。创建元素的IWebElement实例。然后获取IWebElement的id属性。以下是相同的C#代码:
IWebElement element = driver.FindElement(By.XPAth("//XpathOfTheElement"));
string id = element.GetAttribute("id")
我希望这有助于创建该元素的IWebElement实例。然后获取IWebElement的id属性。以下是相同的C#代码:
IWebElement element = driver.FindElement(By.XPAth("//XpathOfTheElement"));
string id = element.GetAttribute("id")
我希望这有帮助谢谢!我相信我使用的元素函数与您提到的findElement函数相同。我找不到PHP绑定的好文档,而且这些函数似乎与其他语言的函数有很大的不同。例如,WebDriver::findElement返回“findElement不是有效的WebDriver命令”。谢谢!我相信我使用的元素函数与您提到的findElement函数相同。我找不到PHP绑定的好文档,而且这些函数似乎与其他语言的函数有很大的不同。例如,WebDriver::findElement返回“findElement不是有效的WebDriver命令”