示例:
# method 1
from selenium import webdriver
PATH = '...'
driver = webdriver.Chrome(PATH)
driver.get('https://google.com')
driver.find_element_by_name('q').send_keys('test')# method 2
from selenium import webdriver
from selenium.webdriver.common.by import By
PATH = 'c:\\Program Files (x86)\\chromedriver.exe'
driver = webdriver.Chrome(PATH)
driver.get('https://google.com')
driver.find_element(By.NAME, 'q').send_keys('test')基本上,我想知道:
1--这两者之间有什么区别吗?如果有的话,他们是什么?
一般说来,这两者之间有什么区别吗?
find_element_by_class_name(el): find_element(By.CLASS_NAME, el);
find_element_by_name(el): find_element(By.NAME, el)3-为什么在执行第一个方法时会显示DeprecationWarning?
发布于 2022-01-15 22:24:34
正如@GuiHva还提到的那样,这两条线之间没有区别:
driver.find_element_by_name('q')和
driver.find_element(By.NAME, 'q')与当前版本的selenium4 Python客户端一样,引擎盖下的Find_element_by_name(姓名)仍然调用:
self.find_element(by=By.NAME, value=name)姓名()的当前实现如下:
def find_element_by_name(self, name) -> WebElement:
"""
Finds an element by name.
:Args:
- name: The name of the element to find.
:Returns:
- WebElement - the element if it was found
:Raises:
- NoSuchElementException - if the element wasn't found
:Usage:
::
element = driver.find_element_by_name('foo')
"""
warnings.warn(
"find_element_by_* commands are deprecated. Please use find_element() instead",
DeprecationWarning,
stacklevel=2,
)
return self.find_element(by=By.NAME, value=name)为什么这样的变化
作为@AutomatedTester 提及
我们的决定是简化跨语言的API,这就做到了这一点。
发布于 2022-01-15 02:46:49
它们是相同的,find_element_by_name调用find_element方法并将By.NAME传递给by参数。这是源代码:
def find_element_by_name(self, name):
"""
Finds an element by name.
:Args:
- name: The name of the element to find.
:Returns:
- WebElement - the element if it was found
:Raises:
- NoSuchElementException - if the element wasn't found
:Usage:
element = driver.find_element_by_name('foo')
"""
return self.find_element(by=By.NAME, value=name)所有的find_element_by_*方法都是具有不同by参数的调用find_element方法。有关详细信息,您应该查看selenium webdriver类源代码。
这是selenium官方api文档。modules/selenium/webdriver/remote/webdriver.html#WebDriver
https://stackoverflow.com/questions/70718458
复制相似问题