{"id":602,"date":"2024-03-19T07:48:48","date_gmt":"2024-03-19T06:48:48","guid":{"rendered":"https:\/\/www.syntera.ch\/blog\/?p=602"},"modified":"2024-03-19T07:52:27","modified_gmt":"2024-03-19T06:52:27","slug":"automated-power-bi-testing-with-selenium","status":"publish","type":"post","link":"https:\/\/www.syntera.ch\/blog\/2024\/03\/19\/automated-power-bi-testing-with-selenium\/","title":{"rendered":"Automated Power BI Testing with Selenium"},"content":{"rendered":"\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-f56f613f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-post-author has-medium-font-size\"><div class=\"wp-block-post-author__avatar\"><img alt='' src='https:\/\/secure.gravatar.com\/avatar\/bd3589b8a6ccc62e37c3cee8f8e06c73a4085816337ad7d6c154e30dc60cc4c1?s=48&#038;d=mm&#038;r=g' srcset='https:\/\/secure.gravatar.com\/avatar\/bd3589b8a6ccc62e37c3cee8f8e06c73a4085816337ad7d6c154e30dc60cc4c1?s=96&#038;d=mm&#038;r=g 2x' class='avatar avatar-48 photo' height='48' width='48' \/><\/div><div class=\"wp-block-post-author__content\"><p class=\"wp-block-post-author__byline\">LEAD DATA ENGINEERING<\/p><p class=\"wp-block-post-author__name\">Dominic Schranz<\/p><\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\">\n<ul class=\"wp-block-outermost-social-sharing alignright has-small-icon-size has-icon-color is-style-logos-only is-content-justification-left is-layout-flex wp-container-outermost-social-sharing-is-layout-fa5e4718 wp-block-outermost-social-sharing-is-layout-flex\"><li style=\"color: #1a4548\" class=\"outermost-social-sharing-link outermost-social-sharing-link-linkedin has-primary-color wp-block-outermost-social-sharing-link\">\n\t<a href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&#038;url=https%3A%2F%2Fwww.syntera.ch%2Fblog%2F2024%2F03%2F19%2Fautomated-power-bi-testing-with-selenium%2F&#038;title=Automated%20Power%20BI%20Testing%20with%20Selenium\" aria-label=\"Share on LinkedIn\" rel=\"noopener nofollow\" target=\"_blank\" class=\"wp-block-outermost-social-sharing-link-anchor\">\n\t\t<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z\"><\/path><\/svg>\t\t<span class=\"wp-block-outermost-social-sharing-link-label screen-reader-text\">\n\t\t\tShare on LinkedIn\t\t<\/span>\n\t<\/a>\n<\/li>\n\n\n<li style=\"color: #1a4548\" class=\"outermost-social-sharing-link outermost-social-sharing-link-mail has-primary-color wp-block-outermost-social-sharing-link\">\n\t<a href=\"mailto:?subject=Automated%20Power%20BI%20Testing%20with%20Selenium&#038;body=Automated%20Power%20BI%20Testing%20with%20Selenium%20&mdash;%20https%3A%2F%2Fwww.syntera.ch%2Fblog%2F2024%2F03%2F19%2Fautomated-power-bi-testing-with-selenium%2F\" aria-label=\"Email this Page\"  class=\"wp-block-outermost-social-sharing-link-anchor\">\n\t\t<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M20,4H4C2.895,4,2,4.895,2,6v12c0,1.105,0.895,2,2,2h16c1.105,0,2-0.895,2-2V6C22,4.895,21.105,4,20,4z M20,8.236l-8,4.882 L4,8.236V6h16V8.236z\"><\/path><\/svg>\t\t<span class=\"wp-block-outermost-social-sharing-link-label screen-reader-text\">\n\t\t\tEmail this Page\t\t<\/span>\n\t<\/a>\n<\/li>\n\n\n<li style=\"color: #1a4548\" class=\"outermost-social-sharing-link outermost-social-sharing-link-whatsapp has-primary-color wp-block-outermost-social-sharing-link\">\n\t<a href=\"https:\/\/api.whatsapp.com\/send?text=Automated%20Power%20BI%20Testing%20with%20Selenium%20&mdash;%20https%3A%2F%2Fwww.syntera.ch%2Fblog%2F2024%2F03%2F19%2Fautomated-power-bi-testing-with-selenium%2F\" aria-label=\"Share on WhatsApp\" rel=\"noopener nofollow\" target=\"_blank\" class=\"wp-block-outermost-social-sharing-link-anchor\">\n\t\t<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M 12.011719 2 C 6.5057187 2 2.0234844 6.478375 2.0214844 11.984375 C 2.0204844 13.744375 2.4814687 15.462563 3.3554688 16.976562 L 2 22 L 7.2324219 20.763672 C 8.6914219 21.559672 10.333859 21.977516 12.005859 21.978516 L 12.009766 21.978516 C 17.514766 21.978516 21.995047 17.499141 21.998047 11.994141 C 22.000047 9.3251406 20.962172 6.8157344 19.076172 4.9277344 C 17.190172 3.0407344 14.683719 2.001 12.011719 2 z M 12.009766 4 C 14.145766 4.001 16.153109 4.8337969 17.662109 6.3417969 C 19.171109 7.8517969 20.000047 9.8581875 19.998047 11.992188 C 19.996047 16.396187 16.413812 19.978516 12.007812 19.978516 C 10.674812 19.977516 9.3544062 19.642812 8.1914062 19.007812 L 7.5175781 18.640625 L 6.7734375 18.816406 L 4.8046875 19.28125 L 5.2851562 17.496094 L 5.5019531 16.695312 L 5.0878906 15.976562 C 4.3898906 14.768562 4.0204844 13.387375 4.0214844 11.984375 C 4.0234844 7.582375 7.6067656 4 12.009766 4 z M 8.4765625 7.375 C 8.3095625 7.375 8.0395469 7.4375 7.8105469 7.6875 C 7.5815469 7.9365 6.9355469 8.5395781 6.9355469 9.7675781 C 6.9355469 10.995578 7.8300781 12.182609 7.9550781 12.349609 C 8.0790781 12.515609 9.68175 15.115234 12.21875 16.115234 C 14.32675 16.946234 14.754891 16.782234 15.212891 16.740234 C 15.670891 16.699234 16.690438 16.137687 16.898438 15.554688 C 17.106437 14.971687 17.106922 14.470187 17.044922 14.367188 C 16.982922 14.263188 16.816406 14.201172 16.566406 14.076172 C 16.317406 13.951172 15.090328 13.348625 14.861328 13.265625 C 14.632328 13.182625 14.464828 13.140625 14.298828 13.390625 C 14.132828 13.640625 13.655766 14.201187 13.509766 14.367188 C 13.363766 14.534188 13.21875 14.556641 12.96875 14.431641 C 12.71875 14.305641 11.914938 14.041406 10.960938 13.191406 C 10.218937 12.530406 9.7182656 11.714844 9.5722656 11.464844 C 9.4272656 11.215844 9.5585938 11.079078 9.6835938 10.955078 C 9.7955938 10.843078 9.9316406 10.663578 10.056641 10.517578 C 10.180641 10.371578 10.223641 10.267562 10.306641 10.101562 C 10.389641 9.9355625 10.347156 9.7890625 10.285156 9.6640625 C 10.223156 9.5390625 9.737625 8.3065 9.515625 7.8125 C 9.328625 7.3975 9.131125 7.3878594 8.953125 7.3808594 C 8.808125 7.3748594 8.6425625 7.375 8.4765625 7.375 z\"><\/path><\/svg>\t\t<span class=\"wp-block-outermost-social-sharing-link-label screen-reader-text\">\n\t\t\tShare on WhatsApp\t\t<\/span>\n\t<\/a>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Working with Power BI can become challenging as the size and complexity of your workspaces increase. Initially, managing a few reports linked to your dataset is straightforward. However, as the number of reports and their dependencies grow, keeping track of everything becomes more difficult.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Power BI offers the option to see, what artefacts in your service are impacted. With the so called &#8220;lineage view&#8221; you get a list of all your dependent elements. But there is no way to quickly see<strong> how<\/strong> the reports are impacted by your changes and if there are any errors. Often we only have small changes to deploy, sifting through all your reports again just to make sure there are no broken visuals gets very tedious.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"495\" src=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/03\/image-1024x495.png\" alt=\"\" class=\"wp-image-609\" style=\"width:622px;height:auto\" srcset=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/03\/image-1024x495.png 1024w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/03\/image-300x145.png 300w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/03\/image-768x372.png 768w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/03\/image-1536x743.png 1536w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/03\/image-2048x991.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Lineage view within Power Bi Service<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">To maintain the quality of our reports while reducing iteration time, we&#8217;ve adopted automated testing using <a href=\"https:\/\/www.selenium.dev\/\" target=\"_blank\" rel=\"noreferrer noopener\">Selenium<\/a>, an open-source tool for web browser automation. Selenium is a popular open-source framework used for automating web browsers. It allows to simulate user interactions with web browsers such as clicking buttons, filling forms, navigating through web pages, and extracting data.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Consider a simple yet critical scenario: after updating the semantic model, a visual on a report page shows an error message. This can happen if you haven&#8217;t been paying attention to the <a href=\"https:\/\/www.syntera.ch\/blog\/2022\/11\/22\/impact-of-renaming-columns-in-power-bi\/\">Impact of renaming columns in Power BI<\/a>. The result are visuals looking like this:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"465\" height=\"291\" src=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2022\/11\/image-7.png\" alt=\"\" class=\"wp-image-126\" srcset=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2022\/11\/image-7.png 465w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2022\/11\/image-7-300x188.png 300w\" sizes=\"auto, (max-width: 465px) 100vw, 465px\" \/><figcaption class=\"wp-element-caption\">Power BI visual with display errors<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Within the report you are currently working with, it is easy to catch those errors right away. But what if you already have 10 other reports published? How are you sure that your update is not breaking something that worked previously? If you want to ensure there is no issue, you have to check all reports again. But this check doesn&#8217;t have to be done manually. That&#8217;s where Selenium is coming in to play.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here are the simple steps of using browser automation within python. If you are already logged in to Power BI, all you need is the URL of the report you want to check. Because we use different browser profiles for different tenants, we initialize Edge with Selenium specifying options for a certain browser profile:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"894\" height=\"325\" src=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/03\/image-3.png\" alt=\"\" class=\"wp-image-621\" srcset=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/03\/image-3.png 894w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/03\/image-3-300x109.png 300w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/03\/image-3-768x279.png 768w\" sizes=\"auto, (max-width: 894px) 100vw, 894px\" \/><figcaption class=\"wp-element-caption\">Initialize Selenium with options<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">After that we navigate to the URL of our report. Because Power BI can take some time to load the report, we give the process 20 seconds to find the &#8220;pbi-overlay-container&#8221;. As soon as it is found, the function completes.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"977\" height=\"347\" src=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/03\/image-2.png\" alt=\"\" class=\"wp-image-620\" srcset=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/03\/image-2.png 977w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/03\/image-2-300x107.png 300w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/03\/image-2-768x273.png 768w\" sizes=\"auto, (max-width: 977px) 100vw, 977px\" \/><figcaption class=\"wp-element-caption\">Navigate to Power BI page<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Finally, we repeat the process to check if the element &#8220;canvas-visual-error-overlay&#8221; is present. Here the wait time is limited to 5 seconds to ensure the visuals have time to load:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"873\" height=\"346\" src=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/03\/image-4.png\" alt=\"\" class=\"wp-image-622\" srcset=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/03\/image-4.png 873w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/03\/image-4-300x119.png 300w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/03\/image-4-768x304.png 768w\" sizes=\"auto, (max-width: 873px) 100vw, 873px\" \/><figcaption class=\"wp-element-caption\">Check for error message in the visuals<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">This logic can be chained with multiple URLs to allow multiple reports and pages to be checked. The video below shows you how it looks like if you are looping through multiple reports within a single workspace when running Selenium from Visual Studio Code. Note the message at the top of the browser &#8220;Microsoft Edge is being controlled by automated test software&#8221;:<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1456\" style=\"aspect-ratio: 2184 \/ 1456;\" width=\"2184\" controls src=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/03\/Video.webm\"><\/video><figcaption class=\"wp-element-caption\">Automated testing of multiple reports<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The result can then be exported to quickly give an overview if there were errors and where. The link to the page allows to quickly check the respective report page yourself.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"629\" height=\"579\" src=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/03\/image-1.png\" alt=\"\" class=\"wp-image-619\" srcset=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/03\/image-1.png 629w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/03\/image-1-300x276.png 300w\" sizes=\"auto, (max-width: 629px) 100vw, 629px\" \/><figcaption class=\"wp-element-caption\">Exported list of all the tests<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Sure enough after clicking on a link for a report page which has errors, we see that there is indeed something wrong with the visual:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"490\" src=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/03\/image-6-1024x490.png\" alt=\"\" class=\"wp-image-624\" srcset=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/03\/image-6-1024x490.png 1024w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/03\/image-6-300x144.png 300w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/03\/image-6-768x367.png 768w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/03\/image-6-1536x735.png 1536w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/03\/image-6.png 1666w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Manually checking the reports with errors<\/figcaption><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Final Thoughts<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Automating tests doesn&#8217;t guarantee more efficient working or improved quality by default. But there is a tipping point in the complexity of your environment where it is extremely useful in supporting both efficiency and quality. We recommend to use this mechanisms <strong>if:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You are following the <a href=\"https:\/\/learn.microsoft.com\/en-us\/power-bi\/guidance\/report-separate-from-model#separate-report-files\">Microsoft guidance<\/a> to separate semantic model and multiple report files with a live connection pointing to your central dataset.<br><br>and either:<\/li>\n\n\n\n<li>have multiple data analysts which are building reports that are not isolated from each other and it can&#8217;t be reasonably expected that they test all the reports depending on their work.<br><br>or:<\/li>\n\n\n\n<li>if you anticipate frequent minor updates to your environment. It&#8217;s natural for manual testing efforts to gradually diminish over time, making it increasingly likely that some changes might not be thoroughly vetted for errors.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">In these scenarios automated testing can tremendously improve your ability to deliver high quality reports without slowing your team down.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">Other Use Cases<\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">The shown example about checking for errors in visuals is just a small part of what is possible. Here are some more ideas on what can be tested with this setup:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Verify that reports load correctly, displaying the intended first page upon deployment.<\/li>\n\n\n\n<li>Ensure the filter panel remains hidden by default across all reports, maintaining a clean and focused user experience.<\/li>\n\n\n\n<li>Detect any blanks in your reports that could indicate missing or improperly loaded data.<\/li>\n\n\n\n<li>If you have an info icon, check if it is working when clicking it<\/li>\n<\/ul>\n\n\n\n<h6 class=\"wp-block-heading\">The Code<\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">Let us know if you are interested in the code used in this example.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Working with Power BI can become challenging as the size and complexity of your workspaces increase. Initially, managing a few reports linked to your dataset is straightforward. However, as the number of reports and their dependencies grow, keeping track of everything becomes more difficult. Power BI offers the option to see, what artefacts in your [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":607,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,5],"tags":[46,6],"class_list":["post-602","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-allgemein","category-business-intelligence","tag-testautomation","tag-power-bi"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Automated Power BI Testing with Selenium - Syntera<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.syntera.ch\/blog\/2024\/03\/19\/automated-power-bi-testing-with-selenium\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Automated Power BI Testing with Selenium - Syntera\" \/>\n<meta property=\"og:description\" content=\"Working with Power BI can become challenging as the size and complexity of your workspaces increase. Initially, managing a few reports linked to your dataset is straightforward. However, as the number of reports and their dependencies grow, keeping track of everything becomes more difficult. Power BI offers the option to see, what artefacts in your [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.syntera.ch\/blog\/2024\/03\/19\/automated-power-bi-testing-with-selenium\/\" \/>\n<meta property=\"og:site_name\" content=\"Syntera\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-19T06:48:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-19T06:52:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/03\/blogpostselenium-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1792\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Dominic Schranz\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dominic Schranz\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.syntera.ch\/blog\/2024\/03\/19\/automated-power-bi-testing-with-selenium\/\",\"url\":\"https:\/\/www.syntera.ch\/blog\/2024\/03\/19\/automated-power-bi-testing-with-selenium\/\",\"name\":\"Automated Power BI Testing with Selenium - Syntera\",\"isPartOf\":{\"@id\":\"https:\/\/www.syntera.ch\/blog\/#website\"},\"datePublished\":\"2024-03-19T06:48:48+00:00\",\"dateModified\":\"2024-03-19T06:52:27+00:00\",\"author\":{\"@id\":\"https:\/\/www.syntera.ch\/blog\/#\/schema\/person\/e038d1dcebeca2193c5503f78783988d\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.syntera.ch\/blog\/2024\/03\/19\/automated-power-bi-testing-with-selenium\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.syntera.ch\/blog\/2024\/03\/19\/automated-power-bi-testing-with-selenium\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.syntera.ch\/blog\/2024\/03\/19\/automated-power-bi-testing-with-selenium\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.syntera.ch\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Automated Power BI Testing with Selenium\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.syntera.ch\/blog\/#website\",\"url\":\"https:\/\/www.syntera.ch\/blog\/\",\"name\":\"Syntera\",\"description\":\"translating data into business value.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.syntera.ch\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.syntera.ch\/blog\/#\/schema\/person\/e038d1dcebeca2193c5503f78783988d\",\"name\":\"Dominic Schranz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.syntera.ch\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/bd3589b8a6ccc62e37c3cee8f8e06c73a4085816337ad7d6c154e30dc60cc4c1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/bd3589b8a6ccc62e37c3cee8f8e06c73a4085816337ad7d6c154e30dc60cc4c1?s=96&d=mm&r=g\",\"caption\":\"Dominic Schranz\"},\"url\":\"https:\/\/www.syntera.ch\/blog\/author\/domi\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Automated Power BI Testing with Selenium - Syntera","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.syntera.ch\/blog\/2024\/03\/19\/automated-power-bi-testing-with-selenium\/","og_locale":"en_US","og_type":"article","og_title":"Automated Power BI Testing with Selenium - Syntera","og_description":"Working with Power BI can become challenging as the size and complexity of your workspaces increase. Initially, managing a few reports linked to your dataset is straightforward. However, as the number of reports and their dependencies grow, keeping track of everything becomes more difficult. Power BI offers the option to see, what artefacts in your [&hellip;]","og_url":"https:\/\/www.syntera.ch\/blog\/2024\/03\/19\/automated-power-bi-testing-with-selenium\/","og_site_name":"Syntera","article_published_time":"2024-03-19T06:48:48+00:00","article_modified_time":"2024-03-19T06:52:27+00:00","og_image":[{"width":1792,"height":1024,"url":"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2024\/03\/blogpostselenium-1.png","type":"image\/png"}],"author":"Dominic Schranz","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Dominic Schranz","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.syntera.ch\/blog\/2024\/03\/19\/automated-power-bi-testing-with-selenium\/","url":"https:\/\/www.syntera.ch\/blog\/2024\/03\/19\/automated-power-bi-testing-with-selenium\/","name":"Automated Power BI Testing with Selenium - Syntera","isPartOf":{"@id":"https:\/\/www.syntera.ch\/blog\/#website"},"datePublished":"2024-03-19T06:48:48+00:00","dateModified":"2024-03-19T06:52:27+00:00","author":{"@id":"https:\/\/www.syntera.ch\/blog\/#\/schema\/person\/e038d1dcebeca2193c5503f78783988d"},"breadcrumb":{"@id":"https:\/\/www.syntera.ch\/blog\/2024\/03\/19\/automated-power-bi-testing-with-selenium\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.syntera.ch\/blog\/2024\/03\/19\/automated-power-bi-testing-with-selenium\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.syntera.ch\/blog\/2024\/03\/19\/automated-power-bi-testing-with-selenium\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.syntera.ch\/blog\/"},{"@type":"ListItem","position":2,"name":"Automated Power BI Testing with Selenium"}]},{"@type":"WebSite","@id":"https:\/\/www.syntera.ch\/blog\/#website","url":"https:\/\/www.syntera.ch\/blog\/","name":"Syntera","description":"translating data into business value.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.syntera.ch\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.syntera.ch\/blog\/#\/schema\/person\/e038d1dcebeca2193c5503f78783988d","name":"Dominic Schranz","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.syntera.ch\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/bd3589b8a6ccc62e37c3cee8f8e06c73a4085816337ad7d6c154e30dc60cc4c1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bd3589b8a6ccc62e37c3cee8f8e06c73a4085816337ad7d6c154e30dc60cc4c1?s=96&d=mm&r=g","caption":"Dominic Schranz"},"url":"https:\/\/www.syntera.ch\/blog\/author\/domi\/"}]}},"_links":{"self":[{"href":"https:\/\/www.syntera.ch\/blog\/wp-json\/wp\/v2\/posts\/602","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.syntera.ch\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.syntera.ch\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.syntera.ch\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.syntera.ch\/blog\/wp-json\/wp\/v2\/comments?post=602"}],"version-history":[{"count":17,"href":"https:\/\/www.syntera.ch\/blog\/wp-json\/wp\/v2\/posts\/602\/revisions"}],"predecessor-version":[{"id":633,"href":"https:\/\/www.syntera.ch\/blog\/wp-json\/wp\/v2\/posts\/602\/revisions\/633"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.syntera.ch\/blog\/wp-json\/wp\/v2\/media\/607"}],"wp:attachment":[{"href":"https:\/\/www.syntera.ch\/blog\/wp-json\/wp\/v2\/media?parent=602"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.syntera.ch\/blog\/wp-json\/wp\/v2\/categories?post=602"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.syntera.ch\/blog\/wp-json\/wp\/v2\/tags?post=602"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}