Python Selenium仅在该类名下通过X路径查找元素



我试图仅在特定类名上应用find_element_by_xpath

textboxes = driver.find_elements_by_class_name("freebirdFormviewerViewNumberedItemContainer")
for element in textboxes:

a = element.find_element_by_xpath("//*[contains(@id, 'i')]")

我想通过x路径找到包含第一个项目的元素;id";因为在该节点中可能存在倍数;id1"id2";

问题是,它不断返回相同的id;id1";尽管我使用for循环。它不会循环通过文本框列表中的不同元素吗?我希望仅在该子节点下应用find_element_by_xpath。

您接近正确的解决方案,但缺少一个小点.:(
所以在for循环中,您应该使用a = element.find_element_by_xpath(".//*[contains(@id, 'i')]")
我指的是xpath表达式开头的//之前的.
此外,contains(@id, 'i')中的i可能存在问题-我看不出您在哪里更新它的值。

要查找input元素,您可以简单地使用以下css selector.freebirdFormviewerViewNumberedItemContainer input,或者如果您喜欢xpath,您可以使用//div[@class='freebirdFormviewerViewNumberedItemContainer']//input

您没有在循环中扩充i,所以它在每次迭代中都保持不变。

最新更新