C#selenium webdriver - 如何保存特定图像而不管位置如何

时间:2015-09-05 17:54:11

标签: c# selenium

我已经看到了大量如何基于保存屏幕截图来保存图像的示例。

这有一个根本性的缺陷。截图仅显示当时页面上可见的内容。因此,如果我在页面底部有一个图像,并且我想根据我找到的元素的位置保存它,则会出现一个或两个问题。

如果我保存屏幕截图然后尝试按位置保存,则屏幕截图在1200点结束,但图像位于3000.如果我专注于图像然后拍摄屏幕截图,则图像现在是然而,在屏幕截图上,位置不起作用。它不起作用,因为我仍然有1200像素的高度图像,位置为3000。

我怎么能简单地说,我的图像是3000x 3014y而我只是想保存它?

2 个答案:

答案 0 :(得分:0)

我已经解决了。 Chrome vs IE vs Firefox以不同的方式拍摄屏幕截图。 Firefox会将屏幕截图拼接在一起,chrome只会显示可见的内容,IE会缩小所有内容以尝试适合一页。

如果您需要对基本页面上没有的内容进行截图,我建议使用firefox

答案 1 :(得分:0)

你基本上可以获得图像的base64字符串并将其保存到文件中。

exemptions = [] #vector I want

with open('read.txt', 'r') as f:
    line2 = f.read()  # read the txt file
    for line in f:
        if "CONFORMED PERIOD REPORT" in line:
            exemptions.append(line.strip('\n').replace("CONFORMED PERIOD REPORT:\t", ""))  # add line without stating CONFORMED PERIOD REPORT, just with the date)
        elif "DATE OF REPORT" in line:
            exemptions.append(line.rstrip('\n').replace("DATE OF REPORT:\t", "")) # idem above

    var1 = re.findall("string1", line2, re.I)  # find string1 in line2, case-insensitive
    if len(var1) > 0:  # if the string appears, it will have length>0
        exemptions.append('1')
    else:
        exemptions.append('0')
    var2 = re.findall("string2", line2, re.I)
    if len(var2) > 0:
        exemptions.append('1')
    else:
        exemptions.append('0')

print(exemptions)