В настоящее время я пытаюсь сделать скриншот определенного веб-элемента с помощью Selenium и Pillow на Python 2.7.Код, который у меня есть, кажется, может сделать снимок экрана, а затем обрезать изображение, но на самом деле он не обрезается в точном месте элемента.После исследования я обнаружил, что это может происходить из-за dpi, используемого дисплеем Mac Book Pro, но я не нашел обходного пути для этого.
Что может быть лучшим способом решения этой «проблемы»с дисплеем сетчатки и PIL?
Это код, который я использую:
try:
#Wait until finishing loading
waitElement = WebDriverWait(driver,60).until(
EC.presence_of_element_located((By.XPATH, "//*[@id='someElement']/span/input[2]"))
)
try:
#Go to trends report
driver.get("https://somewebsite.com/trends")
waitElement = WebDriverWait(driver,60).until(
EC.presence_of_element_located((By.ID, "Totals"))
)
try:
summary = driver.find_element_by_id("Totals")
driver.save_screenshot("sc.png")
location = summary.location
size = summary.size
x = location['x']
y = location['y']
w = size['width']
h = size['height']
width = x + w
height = y + h
im = Image.open('sc.png')
im = im.crop((int(x), int(y), int(width), int(height)))
im.save('summary.png')
except NoSuchElementException:
print("Something")
except NoSuchElementException:
print("Something")
finally:
driver.close()