跳过html表Java的第一行

跳过html表Java的第一行,java,selenium,xpath,selenium-webdriver,web,Java,Selenium,Xpath,Selenium Webdriver,Web,我仍在学习xpath,我正在尝试跳过表的第一行,因为第一行没有值。我没有成功,我在堆栈溢出中搜索,找不到任何有类似问题的人。我的代码如下: int reqIndex = 0; do { List<WebElement> payDates = driver.findElements(By.xpath("//tr[starts-with(@id,'changeStartWeekGrid_row_')]/td[contains(@id,'_cell_4'

我仍在学习xpath,我正在尝试跳过表的第一行,因为第一行没有值。我没有成功,我在堆栈溢出中搜索,找不到任何有类似问题的人。我的代码如下:

int reqIndex = 0;

        do {

        List<WebElement> payDates = driver.findElements(By.xpath("//tr[starts-with(@id,'changeStartWeekGrid_row_')]/td[contains(@id,'_cell_4')/span]"));
        System.out.println(payDates);

                for(WebElement pd:payDates) {                           
                LocalDate localDate = LocalDate.now();
                java.util.Date d = new SimpleDateFormat("yyyy-MM-dd").parse(localDate.toString());

                  String str = pd.getText();

                  if ( str >= (d) ){ // still figuring this out
                    driver.findElement(By.xpath( "//tr[@id='changeStartWeekGrid_row_'" + reqIndex +"])/TBODY[@id='changeStartWeekGrid_rows_tbody']/TR[7]/TD[1]/DIV[1]/DIV[1]/DIV[1]")).click();
                    break;
                    }else{
                         reqIndex++;
                        }

                        }
                    }while(reqIndex < 7 ); /// do this 7 times

                Thread.sleep(10000);
突出显示的行是我试图跳过的行

第4单元图像

-----单选按钮html代码如下

<div id="changeStartWeekGrid.store.rows[5].cells[0]_widget" tabindex="0" class="revitRadioButton dijitRadio" onfocus="var registry = require('dijit/registry'); registry.byId('changeStartWeekGrid').changeActiveCell('changeStartWeekGrid_row_5_cell_0', event);" onblur="var registry = require('dijit/registry'); registry.byId('changeStartWeekGrid').blurActiveCell('changeStartWeekGrid.store.rows[5]', 'changeStartWeekGrid.store.rows[5].cells[0]');"><div class="revitRadioButtonIcon"></div></div>

---单选按钮图片

尝试使用XPath

//table[@id='changeStartWeekGrid_rows_table']//tr[preceding-sibling::tr]
选择除第一个节点外的所有
tr
节点

您还可以按如下方式使用:

//table[@id='changeStartWeekGrid_rows_table']//tr[position()>1]
注意,在XPath中,索引从
1
开始,因此
[position()>1]
谓词意味着返回跳过第一个节点的所有同级节点

尝试使用XPath

//table[@id='changeStartWeekGrid_rows_table']//tr[preceding-sibling::tr]
选择除第一个节点外的所有
tr
节点

您还可以按如下方式使用:

//table[@id='changeStartWeekGrid_rows_table']//tr[position()>1]
注意,在XPath中,索引从
1
开始,因此
[position()>1]
谓词意味着返回跳过第一个节点的所有同级节点

//tr[starts-with(@id,'changeStartWeekGrid_row_') and not(starts-with(@id, 'changeStartWeekGrid_row_column'))]/td[5]/span
您也可以使用

//tr[starts-with(@id,'changeStartWeekGrid_row_') and not(starts-with(@id, 'changeStartWeekGrid_row_column'))]/td[5]/span

关于/td[contains(@id,“'u cell_4')/span]我在提供的图像上没有看到这样的元素。如果您想要改进的解决方案,请使用HTML将问题更新为纯文本。另外,根据当前描述和标题添加一些说明,您只想先跳过
tr
更新后的图像张贴在上面。。是的,我确实想跳过第一个tr或表格行,但在那之后,我需要获取/打印每行第4单元格中所有日历日期的值。给我们的不是图像,而是纯文本的html。目标细胞不是第四个而是5th@Jonathan,如果您想从每个
tr
中获取第4个
td
,除了第一个-
//表[@id='changeStartWeekGrid\u rows\u table']///tr[position()>1]/td[position()=4]
如何处理/td[包含(@id,''u cell\u 4')/span],我在提供的图像上看不到这样的元素。如果您想要改进的解决方案,请使用HTML将问题更新为纯文本。另外,根据当前描述和标题添加一些说明,您只想先跳过
tr
更新后的图像张贴在上面。。是的,我确实想跳过第一个tr或表格行,但在那之后,我需要获取/打印每行第4单元格中所有日历日期的值。给我们的不是图像,而是纯文本的html。目标细胞不是第四个而是5th@Jonathan,如果您想从每个
tr
获取第4个
td
,第一个除外-
//表[@id='changestweekGrid\u rows\u table']//tr[position()>1]/td[position()=4]
我收到了这个消息(selenium.InvalidSelectorException:无法找到xpath表达式为//tr[以(@id,'changeStartWeekGrid_row_')开头,而不是(以(@id,'changeStartWeekGrid_row_column'))开头的元素]/td[包含(@id,''U cell_4')/span],因为出现以下错误:筛选器表达式必须计算为nodeset。)我刚刚在您的xpath中添加了一些筛选器。可能是最后一部分错误。请提供纯HTML。是的,最后一个筛选器
[contains(@id,''u cell_4')/span]
绝对错误。更正我收到此消息(selenium.InvalidSelectorException:无法找到xpath表达式为//tr[以(@id,'changeStartWeekGrid\u row"开头)而不是(以(@id,'changeStartWeekGrid_row_column'))]/td[contains(@id,'u cell_4')/span]因为以下错误:错误:筛选器表达式必须计算为节点集。)我刚刚在xpath中添加了一些筛选器。可能是最后一部分错误。请给出简单的HTML。是的,最后一个筛选器
[包含(@id,'u cell_4')/span]
绝对错误。已更正