<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>
После прочтения https://selenium-python.readthedocs.io/locating-elements.html у меня закончились идеи.
мой код на питоне
#!/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://www.google.com/search?q=elon%20musk")
# get element
element = driver.find_elements_by_class_name("Uo8X3b")
# print complete element
print(element)
exit()
Результат:
[<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")>]
Как я могу ограничить поиск, чтобы найти только элемент <h2 class = "Uo8X3b">Complementary results</h2>
Заранее большое спасибо!
Кстати: рабочий код для duckduckgo.com
#!/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')
Используйте xpath
//h2[@class = "Uo8X3b" and contains(text(),"Complementary"]
Или
//h2[@class = "Uo8X3b" and text() = "Complementary results"]
Второй будет искать точный текст, сначала будет искать подстроку