selenium-webdriver - 在我检查页面之前,Selenium 找不到元素
问题描述
我有一个很奇怪的问题。有一个网站有以下两个按钮(当我检查页面时我可以看到它们):
按钮 1
<ul class=" _3dEhb">
<li class = " LH76I">
<a class="-na14 _81NM2" href="/preview/">
<span class="g47FY 10XF41"</span>" preview"
<li class = " LH76I">
<a class="-na14 _81NM2" href="/launch/">
<span class="g47FY 10XF41"</span>" launch"
我正在使用 python selenium 代码
buttons = driver.find_element_by_class_name('LH76I')
如果我在不检查网页的情况下运行它,这段代码会给我一个空列表。但是,如果我调试并检查网页,相同的代码会在列表中为我提供 2 项。我究竟做错了什么?谢谢
解决方案
您应该driver.find_elements_by_class_name
改用,因为您正在尝试获取具有相同标识符的元素列表。试试下面的代码:
buttons = driver.find_elements_by_class_name('LH76I')
然后,如果你想点击什么的,你会这样做:
buttons[0].click()
编辑 - 您可以尝试通常提取列表项的方式:
main_list = driver.find_element_by_class_name('_3dEhb') //gets the main ul element
List<WebElement> list_items = main_list.findElements(By.tagName("li"));
for x in range(0, len(list_items)):
{
// whatever you want to do with the item
}
推荐阅读
- android - Xamarin Forms ImageButton 在动态更改 Source 后变小
- apache-kafka - Spring Kafka MessageListenerContainer
- python - 如何用 tf.data.Dataset 实现 Tensorflow 已弃用的 tf.range_input_producer 函数?
- json - django rest 框架 + mariaDB:自定义 JSONField
- ionic-framework - 从 Ionic 中的订阅中获取数据
- mysql - MySQL:如何将参数传递给触发器
- amazon-web-services - 我在控制台中是哪个 IAM 用户?
- android - Android中的空menuPopup Window
- powershell - 在 PowerShell Core 中获取目标框架属性
- python - PyTorch 中的连接张量