如何使用Python和Selenium遍历webelements列表?
我想遍历webelements列表并返回每个元素的文本,但我只从第一个如何使用Python和Selenium遍历webelements列表?,python,selenium,Python,Selenium,我想遍历webelements列表并返回每个元素的文本,但我只从第一个元素中获取文本,而不是从其他标记中的其余元素中获取文本,然后代码就存在于该循环中 下面是我想从中提取文本的Html代码的一部分: 精选馅饼 另一个文本 不同文本 另一个文本 不要使用classname定位器,请尝试使用xpath,如下所示: PlajePariuri = driver.find_elements_by_xpath("//ul[@class='KambiBC-list-view__colu
元素中获取文本,而不是从其他
标记中的其余元素中获取文本,然后代码就存在于该循环中
下面是我想从中提取文本的Html代码的一部分:
-
精选馅饼
-
另一个文本
-
不同文本
-
另一个文本
不要使用classname
定位器,请尝试使用xpath
,如下所示:
PlajePariuri = driver.find_elements_by_xpath("//ul[@class='KambiBC-list-view__column']")
for items in PlajePariuri:
NumePlaje = items.find_element_by_xpath("//li/header/h2")
print (NumePlaje.text)
试试下面的代码-
PlajePariuri = driver.find_elements_by_xpath("//ul[@class='KambiBC-list-view__column']//li/header/h2")
for items in PlajePariuri:
print (items.text)
它一直在我的脸上,这将打印每个元素的文本,很高兴我能找到
PlajePariuri = driver.find_elements_by_class_name('KambiBC-bet-offer-category KambiBC-collapsible-container KambiBC-expanded KambiBC-bet-offer-category--hidden KambiBC-bet-offer-category--fade-in')
for items2 in PlajePariuri:
NumePlaje = items2.find_element_by_class_name('KambiBC-bet-offer-category__title js-bet-offer-category-title')
print (NumePlaje.text)
我做了一个实现来查找列表中的元素 我的案例是,我们有一个wiki,其中有一个附带列表,列表中可能有列表,也可能没有列表,等等。 这是我的解决方案:
/#创建一个函数来接收旧的HTML(单击之前),
//#新建HTML(单击后),以及我要查找的元素:
def页面处理程序(旧源、新源、元素):
新内容=[]
//#将页面放入列表(需要验证它是否适合您)
old\u page=old\u source.split('\n')
新建页面=新建源。拆分('\n')
//#比较旧页和新页。新页面的内容,我检查
//#与我正在寻找的元素匹配
对于新页面中的数据:
如果数据不在旧页面中:
如果数据中有元素:
新增内容。追加(数据)
返回新内容
//#现在在主线程中,在程序单击项目之前,拍摄快照:
旧页面=driver.page\u源
//#单击项目
elem=驱动程序。通过链接文本(项)查找元素。单击()
//#拍摄新快照
新建页面=driver.page\u源
//#使用该功能发送旧页和新页以及您正在查看的类
//#对于HTML代码中的:
新建页面数据=页面处理程序(旧页面,新页面,'class=“plugin\u pagetree\u children\u span')
//#现在我有了children元素,只需迭代列表。
对于新_pg_数据中的元素_id:
//#我使用regexp获取元素ID
element_id=search('id=“(.*)”>,element_id)
如果元素id为:
elem=驱动程序。按元素id(元素id)查找元素。单击()
我希望这个解决方案能帮助你们 根据提供的HTML,我在
li
标记中没有看到任何此类文本。我遗漏了什么吗?@DebanjanB看一下
标签,它们都有类名。您提供的HTML只包含一个您可以检索的
标签。除非您提供更多的
标记,否则很难派生出动态xpath
@DebanjanB每个li
标记内都有相同的头和h2
元素,并且所有标记都具有第一个标记具有的相同类名,但具有不同的属性texts@Rius2html代码不正确。有许多缺少的关闭标记,并且似乎有许多嵌套列表,或者它们也没有正确关闭。除此之外,Python代码引用的属性根本没有出现在HTML代码段中。请提供一个与需要帮助的Python代码对应的有效HTML代码段loop@Rius2我得到了同样的效果,重复元素,你找到了解决方案吗?@YodaScholtz我找到了重复元素的解决方案。没有真正重复,但是循环没有正确地迭代WebElements
。找到答案html代码中有更多文本,这将打印找到的所有文本,我需要在
与特定类之间的文本name@Rius2--我不这么认为。你试过了吗?我肯定。正如我所说,实际的网页在ul
列表中包含了更多包含更多文本的元素,我只发布了我目前感兴趣的部分。所以你的代码可以打印所有东西。我试过了。