Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中使用SeleniumWeb驱动程序获取元素的ID_Php_Selenium_Selenium Webdriver - Fatal编程技术网

在PHP中使用SeleniumWeb驱动程序获取元素的ID

在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持开放态度),我想创建一个新项目,然后单击编辑按钮并对其进行更改,

我正在用PHP/MySQL/jQuery构建一个应用程序,它向用户显示一个项目列表,底部有一个空白字段用于添加新项目。有一个Ajax模糊事件,它将数据保存到数据库中,然后用一个常规行替换“新”行,其中包括您输入的文本和一个编辑按钮。如果单击“编辑”按钮,则可以将文本转换回输入。所有这些都有类似item_n和edit_n的ID,其中n是数据库中的ID。我真正想要的是n

使用Selenium(我一直关注Web驱动程序,但我对使用IDE持开放态度),我想创建一个新项目,然后单击编辑按钮并对其进行更改,但我不知道编辑按钮的ID

我已经能够创建测试,其中我创建了一个新行,然后使用assertTextPresent确认它在那里,但是我找不到一种方法来获取新行的ID(这将是项)

我尝试使用:contains,但它总是返回空字符串。我尝试了一些CSS和Xpath选择器,从常规到特定:

$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命令”