eficode / robotframework-imagehorizonlibrary

Cross-platform Robot Framework library for GUI automation based on image recognition
MIT License
80 stars 28 forks source link

When running ImageHorizonLibrary.Take A Screenshot keyword, path to the image should relative and not absolute #28

Open aaltat opened 7 years ago

aaltat commented 7 years ago

When I run my tests in CI, I do not want to store the the results in the job which did the actually running. I move the result to different places and even to outside of the CI. But because the ImageHorizonLibrary.Take A Screenshot keyword saves the paths to image as absolute paths, the images are not anymore shown when I move the log.html to a different folder structure.

Example when I save the Robot Framework results in /path/to/workspace/output/ folder, then with ImageHorizonLibrary.Take A Screenshot keyword the DOM is like this:

<img src="/path/to/workspace/output/filename-1.png" width="100%">`

But it should be like this:

<img src="filename-1.png" width="100%">

Example in Selenium2Library the same logic is done in here: https://github.com/robotframework/Selenium2Library/blob/master/src/Selenium2Library/keywords/screenshot.py#L115

damies13 commented 2 years ago

I looked at the code for ImageHorizonLibrary.Take A Screenshot today, I think I can provide a fix for this.

damies13 commented 7 months ago

For anyone else having this issue, I have a workaround I use for now until the PR is added to a release.

I use sed to update the output.xml and then use rebot to regenerate the html reports like this:

          sed --in-place=.bak 's/img src="<path to image>/img src="./g' ./output.xml
          rebot ./output.xml