Selenium find_elements 函数 return 对象 (Selenium 4)
Selenium find_elements function return Object (Selenium 4)
谢谢你的帮助。
我通常使用 Selenium 2,3 但今天我尝试使用 Selenium 4 来使用新功能 Relative Locators
。我做了一个简单的查找表达式,但它总是 return 奇怪的对象,如下所示
> print(driver.find_element(By.TAG_NAME, "a"))
{'ELEMENT': '0.4746792741017858-194'}
或者我找到倍数
> print(driver.find_elements(By.TAG_NAME, "a"))
[{'ELEMENT': '0.4746792741017858-178'}, {'ELEMENT': '0.4746792741017858-179'}]
我希望它是 return WebDriver 对象,但它没有
这是代码和打印语句的图像。
有人知道这件事吗?
非常感谢!
我运行你的代码
print(driver.find_element(By.TAG_NAME, "a"))
selenium 3 上的输出:
<selenium.webdriver.remote.webelement.WebElement (session="251a91865546a6c66596a267e20688d1", element="a36e87f3-bf6a-475c-82e4-07e4febe0dc5")>
selenium 4 上的输出:
[[ChromeDriver: chrome on WINDOWS (cbd87e312a3869b75a472d747371fd57)] -> tag name: a]
以及您的期望:
I expect it return WebDriver Object, but it doesn't
请注意 driver.find_element(By.TAG_NAME, "a")
将始终 return 一个网络元素。它不会 return 网络驱动程序对象。
您可以在网络元素上执行 .text
、.send_keys
、.click
等方法
更新:
driver.get('https://www.google.com/')
driver.find_element(By.NAME, 'q').send_keys('etc')
我终于找到了这个问题的答案。
这是我的设置:
chromedriver: 71.0.3578.80
chromebrowser: 99.0
selenium: 4
基本上,我使用的是仅支持以上 chromedriver 的 Selenium 4:> 92。但是我的 chromedriver v.71 -> 过时了。
所以这就是它不兼容的原因。因此,如果您选择 selenium 4,请检查您的 chromedriver 版本。
谢谢你的帮助。
我通常使用 Selenium 2,3 但今天我尝试使用 Selenium 4 来使用新功能 Relative Locators
。我做了一个简单的查找表达式,但它总是 return 奇怪的对象,如下所示
> print(driver.find_element(By.TAG_NAME, "a"))
{'ELEMENT': '0.4746792741017858-194'}
或者我找到倍数
> print(driver.find_elements(By.TAG_NAME, "a"))
[{'ELEMENT': '0.4746792741017858-178'}, {'ELEMENT': '0.4746792741017858-179'}]
我希望它是 return WebDriver 对象,但它没有
这是代码和打印语句的图像。
我运行你的代码
print(driver.find_element(By.TAG_NAME, "a"))
selenium 3 上的输出:
<selenium.webdriver.remote.webelement.WebElement (session="251a91865546a6c66596a267e20688d1", element="a36e87f3-bf6a-475c-82e4-07e4febe0dc5")>
selenium 4 上的输出:
[[ChromeDriver: chrome on WINDOWS (cbd87e312a3869b75a472d747371fd57)] -> tag name: a]
以及您的期望:
I expect it return WebDriver Object, but it doesn't
请注意 driver.find_element(By.TAG_NAME, "a")
将始终 return 一个网络元素。它不会 return 网络驱动程序对象。
您可以在网络元素上执行 .text
、.send_keys
、.click
等方法
更新:
driver.get('https://www.google.com/')
driver.find_element(By.NAME, 'q').send_keys('etc')
我终于找到了这个问题的答案。 这是我的设置:
chromedriver: 71.0.3578.80
chromebrowser: 99.0
selenium: 4
基本上,我使用的是仅支持以上 chromedriver 的 Selenium 4:> 92。但是我的 chromedriver v.71 -> 过时了。
所以这就是它不兼容的原因。因此,如果您选择 selenium 4,请检查您的 chromedriver 版本。