Python Selenium webdriver帮助查找元素 我的目标是获得一个出现多次的特定元素的屏幕截图。 示例URL:,我想获取https://i.imgur.com/kcd98bQ.png 因此,我查看了代码,发现:`complemental results`,不幸的是`element=driver.find\u elements\u by_class\u name(“Uo8X3b”)`不起作用,因为`class=“Uo8X3b”`发生了几次: <h1 class="Uo8X3b">Accessibility links</h1> <h1 class="Uo8X3b">Search modes</h1> <h1 class="Uo8X3b">Search Results</h1>< <h2 class="Uo8X3b">Web results</h2> <h2 class="Uo8X3b">Notices about Filtered Results</h2> <h1 class="Uo8X3b">Page navigation</h1> <h2 class="Uo8X3b">Complementary results</h2> <h3 class="Uo8X3b">Images</h3> <h2 class="Uo8X3b">Description</h2> <h2 class="Uo8X3b">Description</h2> <h1 class="Uo8X3b">Footer links</h1>
结果:Python Selenium webdriver帮助查找元素 我的目标是获得一个出现多次的特定元素的屏幕截图。 示例URL:,我想获取https://i.imgur.com/kcd98bQ.png 因此,我查看了代码,发现:`complemental results`,不幸的是`element=driver.find\u elements\u by_class\u name(“Uo8X3b”)`不起作用,因为`class=“Uo8X3b”`发生了几次: <h1 class="Uo8X3b">Accessibility links</h1> <h1 class="Uo8X3b">Search modes</h1> <h1 class="Uo8X3b">Search Results</h1>< <h2 class="Uo8X3b">Web results</h2> <h2 class="Uo8X3b">Notices about Filtered Results</h2> <h1 class="Uo8X3b">Page navigation</h1> <h2 class="Uo8X3b">Complementary results</h2> <h3 class="Uo8X3b">Images</h3> <h2 class="Uo8X3b">Description</h2> <h2 class="Uo8X3b">Description</h2> <h1 class="Uo8X3b">Footer links</h1>,python,selenium,selenium-webdriver,Python,Selenium,Selenium Webdriver,结果: [<selenium.webdriver.remote.webelement.WebElement (session="7bc20d0d87be84ee463612341bbd4d1e", element="0c5b38af-7350-4d54-968e-2dbf1bcfd590")>, <selenium.webdriver.remote.webelement.WebElement (session="7bc20d0d
[<selenium.webdriver.remote.webelement.WebElement (session="7bc20d0d87be84ee463612341bbd4d1e", element="0c5b38af-7350-4d54-968e-2dbf1bcfd590")>, <selenium.webdriver.remote.webelement.WebElement (session="7bc20d0d87be84ee463612341bbd4d1e", element="59f03910-6787-4009-9793-c9f2ad2fb42b")>, <selenium.webdriver.remote.webelement.WebElement (session="7bc20d0d87be84ee463612341bbd4d1e", element="d124b2ca-ac51-401f-9e9c-653627af439c")>, <selenium.webdriver.remote.webelement.WebElement (session="7bc20d0d87be84ee463612341bbd4d1e", element="35728814-738c-4f45-92cc-2c1353fdda0a")>, <selenium.webdriver.remote.webelement.WebElement (session="7bc20d0d87be84ee463612341bbd4d1e", element="b1491e4c-7d69-4ca1-b0b5-a2cf56382041")>, <selenium.webdriver.remote.webelement.WebElement (session="7bc20d0d87be84ee463612341bbd4d1e", element="70774d08-5e42-499e-9e81-8c7a61763a63")>, <selenium.webdriver.remote.webelement.WebElement (session="7bc20d0d87be84ee463612341bbd4d1e", element="3e9ef6a4-9013-4421-810d-6a0a9f2357ce")>, <selenium.webdriver.remote.webelement.WebElement (session="7bc20d0d87be84ee463612341bbd4d1e", element="289735b1-3685-4f9a-9156-f1af4a3d1ebf")>, <selenium.webdriver.remote.webelement.WebElement (session="7bc20d0d87be84ee463612341bbd4d1e", element="b6a2eda1-8038-4dd1-9047-36cf263863c1")>, <selenium.webdriver.remote.webelement.WebElement (session="7bc20d0d87be84ee463612341bbd4d1e", element="ebe87746-7bf3-495c-8660-3ca823c6e4b1")>, <selenium.webdriver.remote.webelement.WebElement (session="7bc20d0d87be84ee463612341bbd4d1e", element="de8af129-a648-4862-a7de-c9486e7d16e2")>, <selenium.webdriver.remote.webelement.WebElement (session="7bc20d0d87be84ee463612341bbd4d1e", element="ce4de9f5-337f-4151-8a0a-e289bc9d7d2a")>, <selenium.webdriver.remote.webelement.WebElement (session="7bc20d0d87be84ee463612341bbd4d1e", element="456b2fbf-353b-4de9-b6ad-6377d13addbd")>, <selenium.webdriver.remote.webelement.WebElement (session="7bc20d0d87be84ee463612341bbd4d1e", element="3e877977-2e16-4639-a497-c4099f83a872")>]
使用xpath
//h2[@class="Uo8X3b" and contains(text(),"Complementary"]
或
第二个将搜索精确文本第一个将搜索子字符串
#!/usr/bin/env python3
# import webdriver
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from PIL import Image
# create webdriver object
options = Options()
#options.headless = True
driver = webdriver.Chrome(options=options, executable_path=r'/usr/bin/chromedriver')
driver.get("https://duckduckgo.com/?q=elon+musk")
# get element
element = driver.find_element_by_class_name("module__body")
# print complete element
print(element)
location = element.location
size = element.size
driver.save_screenshot("shot.png")
x = location['x']
y = location['y']
w = size['width']
h = size['height']
width = x + w
height = y + h
im = Image.open('shot.png')
im = im.crop((int(x), int(y), int(width), int(height)))
im.save('image.png')
//h2[@class="Uo8X3b" and contains(text(),"Complementary"]
//h2[@class="Uo8X3b" and text()="Complementary results"]