python - 我的 WebDriverWait 返回一个“dict”而不是所需的元素
问题描述
我想使用 Selenium 和 Gauge 从网页中获取数据。我编写了以下代码,使用wait_for_element
:
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from step_impl.mixins.exception import MixinException
class MixinSelector(MixinException):
def __init__(self, driver=None):
super(MixinSelector, self).__init__(driver)
self.wait_for_element_time = 60
def wait_for_elem(self, by, locator_string):
try:
element = WebDriverWait(self.driver,self.wait_for_element_time)
.until(EC.presence_of_element_located((by,
locator_string)))
print(element)
print(type(element))
return element
except TimeoutException:
self.fail_test('failed')
except:
raise
但是,这会产生一个dict
实例,如 debug 所示print
:
{'ELEMENT': '0.8884832448581164-1'}
<class 'dict'>
我这样调用函数:
self.wait_for_elem(By.CSS_SELECTOR, '#baseWebLayoutContainerID')
这是一个问题,因为我需要将结果作为可以在其他几个功能中使用的 Web 元素。我怎样才能得到这个结果?
解决方案
推荐阅读
- azure - Azure 数据工厂和 Power Query
- doctrine-orm - 更新号码表单域
- php - 100 > 100 为真
- python - 当我应该得到答案时,为什么我的新列表会输出一个空列表
- javascript - PlotBands Highcharts 可见性
- flutter - SQFlite 未找到现有表
- java - Android Studio 启动失败内部错误
- c# - 如何在我的注册表单中显示来自模型的多个错误消息
- python - 如何拆分列元素并用python数据框中的其他列值替换?
- python - 在 Cmder/ConEmu 与代码中运行 python 文件