Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.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
Vb.net 单击selenium中的动态链接_Vb.net_Visual Studio 2010_Xpath_Selenium - Fatal编程技术网

Vb.net 单击selenium中的动态链接

Vb.net 单击selenium中的动态链接,vb.net,visual-studio-2010,xpath,selenium,Vb.net,Visual Studio 2010,Xpath,Selenium,我需要单击一个表中的链接,该表的id是动态生成的。我想单击一个链接,该链接基于同一行中某个其他列中的文本。尝试了以下代码,但未成功 selenium.GetValue(//table[@id=TableID]/tbody/tr[td/a/text()='Testing'])) 还尝试使用以下代码 Selenium.click(“xpath=id(TableID)/tbody/tr[td/text()='Testing']//input[@value='Delete']”) 尝试了以下代码,但仅通

我需要单击一个表中的链接,该表的id是动态生成的。我想单击一个链接,该链接基于同一行中某个其他列中的文本。尝试了以下代码,但未成功

selenium.GetValue(//table[@id=TableID]/tbody/tr[td/a/text()='Testing']))

还尝试使用以下代码 Selenium.click(“xpath=id(TableID)/tbody/tr[td/text()='Testing']//input[@value='Delete']”)

尝试了以下代码,但仅通过指定静态行id起作用

 Dim NumOfRows As Integer = selenium.GetXpathCount("//table[@id='up']/tbody/tr")
        'Dim index As Integer
        Dim ReturnValue As Integer
        Dim IsFound As Boolean = False
        Console.WriteLine(NumOfRows)

        For i As Integer = 1 To NumOfRows
            Dim strColumnText As String = selenium.GetText("//table[@id='up']/tbody/tr[i]/td[1]")
            'selenium.WaitForCondition(strt, 100000)
            If (strColumnText = pord) Then
                ReturnValue = i
                IsFound = True
                Exit For
            End If
        Next

如果我指定精确的行,它将找到元素,但不在循环中工作。如果该值在您应该使用的表格中,请提供帮助

selenium.getTable("tableName.0.1");
其中0为行,1为列(两者均以0为索引)

如果成功,getTable将返回一个字符串:“OK,value”,因此需要去掉OK,部分

更新 添加到user-extensions.js

    Selenium.prototype.getTableRows = function(locator) {
  /**
   * Gets the number of rows in a table.
   *
   * @param locator element locator for table
   * @return number of rows in the table, 0 if none
   */

    var table = this.browserbot.findElement(locator);
    return table.rows.length.toString();
};
硒RC

// Table Name in inputParams

    String[] inputParams = { "tblTryggHuvudlantagare", };

                String y = proc.doCommand("getTableRows", inputParams);
                String tmpString = y.replace("OK,", "");

                // Rows minus headings


    int tableRows = Integer.valueOf(tmpString).intValue() - 1;

        for (int i = 1; i < tableRows; i++) {
    // Your logic here to see if you reached the right row and then click button on same row..
                    }
//inputParams中的表名
字符串[]inputParams={“tbltrygghuvudlare”,};
字符串y=proc.docomand(“getTableRows”,inputParams);
字符串tmpString=y.replace(“OK,”,“”);
//行减去标题
int tableRows=Integer.valueOf(tmpString).intValue()-1;
对于(int i=1;i
这里您指定的是精确的行和列,但我必须根据“测试”值选择一行,然后单击另一列中同一行上的“删除”按钮。有一次我提出了一个解决方案,在这个方案中,我必须迭代表以找到我的值来获得行号。从那里我猜你现在看到了什么列的删除按钮。。我必须制作一个JavaScript来获取表的大小,因为如果您尝试不存在行,Selenium将抛出异常。将进行查看,看看是否找到了解决方案并将其添加到我的答案中。使用您指定的选项进行了尝试,该选项的代码为:I为Integer=1,numorrows Dim strcolumntable为String=selenium.GetTable(“ctl00\u cphMain\u gvOperatorGroup.I.1”)'selenium.WaitForCondition(strColumnText,100000)如果(strcolumntable=pKey),那么ReturnValue=i IsFound=True如果下一步得到两个代码相同的问题,则结束退出…不通过循环迭代。如果提供静态行值,则可以正常工作,但不会进行迭代。任何帮助plzselenium.GetTable(“ctl00\u cphMain\u gvOperatorGroup.i.1”)都不应该是selenium.GetTable(“ctl00\u cphMain\u gvOperatorGroup.”+i+“.1”),谢谢Stefan。是的,我也尝试过,但从字符串到类型double的转换无效。如果(selenium.GetTable(“Group.”+i+“.1”)=pKeyword),尝试将i作为整数=2到numorrows执行以下操作然后ReturnValue=i IsFound=True Exit For End如果下一步知道我为什么得到这个XPath表达式作为答案,您需要提供一个输入示例。