我在表格上为一组数字添加一个数字我已经找到了如何滚动到数字
IWebElement element = wb.wd.FindElement(By.XPath("//span[contains(text(),'1111111111')]"));
((IJavaScriptExecutor)wb.wd).ExecuteScript("arguments[0].scrollIntoView(true);", element);
System.Threading.Thread.Sleep(500);
现在位于我的号码右侧的当前视图屏幕的顶部是一个编辑按钮我想点击我这样做
wb.wd.FindElement(By.XPath("//input[@type='submit'][@value='Edit']")).Click();
但它会向上滚动到页面顶部,然后单击页面顶部数字的“编辑”按钮。如何单击我想要的“编辑”按钮。 Id
,names
是动态的,CSS
xpath
和Indexes
。
答案 0 :(得分:1)
如果没有html,很难确定最佳行动方案。我建议首先,如果html层次结构中有一个区别可以用于xpath。例如,也许一个按钮位于具有唯一ID的表单中,您可以使用:
wb.wd.FindElement(By.XPath("*//form[@id='uniqueId']//input[@type='submit'][@value='Edit']")).Click();
为了更好地帮助自己,我建议this website作为资源来查看您选择的元素(将节点和输出格式更改为HTML以查看您选择的内容)。
或者,FindElement将选择它在页面上遇到的第一个元素,而FindElements将返回所有元素的列表。从这里,您可以根据索引分配所需的特定元素。
修改强>
也可以使用同一行中的唯一文本来选择特定行。在您显示here的示例中,如果要在第五行选择编辑按钮,则可以使用xpath:
*//tr[td/text()='Iuvaret5']/td/a[@href='#edit']
*//tr[td/text()='Iuvaret5']
部分将选择包含带文本Iuvaret5的td的表行。从这个tr,它将进一步选择/td/a[@href='#edit']
来选择特定的编辑按钮。
我希望您可以使用此逻辑在您的情况下工作。