如何在 selenium 中按 class 名称查找元素?
How do I find element by class name in selenium?
在 selenium 中通过 class 名称查找元素的语法是什么? 请注意我已经使用了语法:
link_elements = driver.find_elements_by_class_name("BM30N")
它给了我以下错误:
C:\Users\David\Desktop\Selenium\Crawl.py:17: DeprecationWarning: find_elements_by_class_name is deprecated. Please use find_elements(by=By.CLASS_NAME, value=name) instead
link_elements = driver.find_elements_by_class_name("BM30N")
当我使用:
link_elements=driver.find_elements(By.CLASS,'BM30N')
我得到:
AttributeError: type object 'By' has no attribute 'CLASS'
但是上面的语法对于 ID 和 NAME 非常适用:
link_elements=driver.find_elements(By.NAME,'product-item')
link_elements=driver.find_elements(By.ID,'product-item')
关于 class 搜索的正确语法有什么想法吗?
改变
link_elements=driver.find_elements(By.CLASS,'BM30N')
至
link_elements=driver.find_elements(By.CLASS_NAME,'BM30N')
您必须使用 Selenium 4
。
在Selenium4
find_elements_by_class_name
和其他 find_elements_by_**
已被 弃用 。
您应该使用 find_element(By.CLASS_NAME, "")
而不是
所以你的有效代码是:
link_elements = find_elements(By.CLASS_NAME, "BM30N")
这应该可以帮助您解决问题。
Java:
driver.findElement(By.className("input"));
&
driver.findElement(By.xpath("//input[@class='BM30N']"));
Python:
find_elements(By.CLASS_NAME, "BM30N")
&
driver.find_elements_by_class_name("BM30N")
在 selenium 中通过 class 名称查找元素的语法是什么? 请注意我已经使用了语法:
link_elements = driver.find_elements_by_class_name("BM30N")
它给了我以下错误:
C:\Users\David\Desktop\Selenium\Crawl.py:17: DeprecationWarning: find_elements_by_class_name is deprecated. Please use find_elements(by=By.CLASS_NAME, value=name) instead
link_elements = driver.find_elements_by_class_name("BM30N")
当我使用:
link_elements=driver.find_elements(By.CLASS,'BM30N')
我得到:
AttributeError: type object 'By' has no attribute 'CLASS'
但是上面的语法对于 ID 和 NAME 非常适用:
link_elements=driver.find_elements(By.NAME,'product-item')
link_elements=driver.find_elements(By.ID,'product-item')
关于 class 搜索的正确语法有什么想法吗?
改变
link_elements=driver.find_elements(By.CLASS,'BM30N')
至
link_elements=driver.find_elements(By.CLASS_NAME,'BM30N')
您必须使用 Selenium 4
。
在Selenium4
find_elements_by_class_name
和其他 find_elements_by_**
已被 弃用 。
您应该使用 find_element(By.CLASS_NAME, "")
而不是
所以你的有效代码是:
link_elements = find_elements(By.CLASS_NAME, "BM30N")
这应该可以帮助您解决问题。
Java:
driver.findElement(By.className("input"));
&
driver.findElement(By.xpath("//input[@class='BM30N']"));
Python:
find_elements(By.CLASS_NAME, "BM30N")
&
driver.find_elements_by_class_name("BM30N")