我想从下拉列表中选择一个值,并将数据从Excel发送到下拉列表中。当我检查元素时,有一个ID定位器保持不变,值随着所选值而变化。如果我选择globle,则id=“ABC”〉globle如果我选择任何其他globle,则globle将更改为该值。我使用静态和动态两种方式,但每次都有多个错误。
nmpmafwu1#
如果没有正在使用的DOM示例和代码/堆栈跟踪,这是很困难的,但也许我可以为您指出正确的方向。根据网站的不同,当你与不同的元素交互时,你经常会看到id的变化。我不确定你使用的是哪种语言,但是方法是一样的。用id、值或者你期望选项值包含的文本构建XPath。使用Selenium,你经常不能与浏览器中没有显示的元素交互。因此在尝试单击所讨论的选项元素之前,必须先单击下拉按钮。如果您对上述方法有任何问题,请首先检查XPath,并确保您实际上指向了正确的元素。
arknldoa2#
假设您获取列表中的所有元素并存储在WebElement列表中,然后使用foreach循环迭代该列表,逐个取出每个元素,获取该元素的文本并将其与Excel中的预期文本进行比较。然后,在与预期文本匹配的位置单击该元素。以下是代码片段:公共void方法(字符串excel值){列表lstele =驱动程序.findElements(--您的定位器--);对于(Web元素e:中柱){if((e.getText()).equals(excelvalue)){e.click(); break; //获得所需元素后不要忘记中断循环}} }
2条答案
按热度按时间nmpmafwu1#
如果没有正在使用的DOM示例和代码/堆栈跟踪,这是很困难的,但也许我可以为您指出正确的方向。
根据网站的不同,当你与不同的元素交互时,你经常会看到id的变化。我不确定你使用的是哪种语言,但是方法是一样的。用id、值或者你期望选项值包含的文本构建XPath。使用Selenium,你经常不能与浏览器中没有显示的元素交互。因此在尝试单击所讨论的选项元素之前,必须先单击下拉按钮。
如果您对上述方法有任何问题,请首先检查XPath,并确保您实际上指向了正确的元素。
arknldoa2#
假设您获取列表中的所有元素并存储在WebElement列表中,然后使用foreach循环迭代该列表,逐个取出每个元素,获取该元素的文本并将其与Excel中的预期文本进行比较。然后,在与预期文本匹配的位置单击该元素。以下是代码片段:
公共void方法(字符串excel值){
列表lstele =驱动程序.findElements(--您的定位器--);
对于(Web元素e:中柱){
if((e.getText()).equals(excelvalue)){e.click(); break; //获得所需元素后不要忘记中断循环}
} }