Я заметил разницу между запуском моего скрипта в Chrome инструментах разработчика и скриптом python, который вызывается через Selenium в сеансе браузера без заголовка Chrome.
divs = document.querySelectorAll("div[class*=x]");
properties = [...divs].map(function(arg) {
rect = arg.getBoundingClientRect();
return rect});
по сравнению с:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.binary_location = '/usr/bin/google-chrome'
browser = webdriver.Chrome(executable_path=os.path.abspath("venv/bin/chromedriver"), chrome_options=chrome_options)
web_view = browser.get("file:///" + os.getcwd() + html_read_from)
real_properties = get_attributes_script = f"""
divs = document.querySelectorAll("div[class*=x]");
properties = [...divs].map(
function(arg) {{
rect = arg.getBoundingClientRect();
return rect}});
return properties;"""
edges_of_all_divs = browser.execute_async_script(get_attributes_script)
print(edges_of_all_divs)
В первом случае я получаю все хорошие прямоугольники для div, во втором случае я ничего не получаю: (
Это тот случай, когда Chrome в режиме без головы не отображает эти позиции? И если мне нужно это или если я хочу проверить формат на основе этого, что можно сделать?
Я просто хочу знать ширину моих тегов ... но это, кажется, большие безголовые над головой.