我尝试使用Robot Framework在表中输入数据。该表具有一个ID,但是每次加载页面时都会更改(它是某种UUID),所以我不能将其用作xpath的“锚”。但是,此表的标题似乎从合理的开头开始具有固定的ID。在标题和表格之间有几个div。像这样(伪代码的混合以及在Chrome中复制选择器和xpath时得到的混合)到达表第一行的第一个单元格:
didReceiveMessage
我想写一个看起来像这样的xpath
//*[@id="heading"] (a bunch of divs) /*[@id="random string of letters"]/div[3]/div/div/div[2]
我该怎么写?
谢谢。
答案 0 :(得分:3)
如果“标题”中只有一个元素包含id属性,则可以使用
//*[@id="heading"]//*[@id]/div[3]/div/div/div[2]
如果具有id属性的元素不止一个,则您还需要其他内容,例如,如果其中包含某个标签
//*[@id="heading"]//*[contains(@id, "tag")]/div[3]/div/div/div[2]
或(如果使用xpath 2.0),并且只有这个@id在标题中包含一个uuid
//*[@id="heading"]//*[matches(@id,"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}")]/div[3]/div/div/div[2]
否则,您将不得不尝试找到独特的内容(在“标题”的上下文内)以开始div[3]/div/div/div[2]
搜索(如果幸运的话,div[3]/div/div/div[2]
足够独特)。