Skip to content
This repository has been archived by the owner on Jul 30, 2024. It is now read-only.

Commit

Permalink
Merge pull request #2 from SankhaChak/main
Browse files Browse the repository at this point in the history
Readme: updated with selenium network throttle example
  • Loading branch information
nafees87n authored Sep 25, 2021
2 parents f5496ef + 552cb65 commit 343c87a
Showing 1 changed file with 57 additions and 2 deletions.
59 changes: 57 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,12 +80,18 @@ importRequestlySharedList(driver, <sharedList_URL>);

Users can share Requestly Rules with other users using Shared Lists which is used for importing rules into Selenium webdriver.

Find more information [here](https://requestly.io/blog/2018/06/14/share-rules-with-other-users/)

---

## Example Snippets

Almost all websites contain `content-security-policy` and `X-Frame-Options` header due to which the browser does not the allow the website to open in iframe.

You can try this sharedlist to open websites in iframe:
[https://app.requestly.io/rules/#sharedList/1628536158787-Open-Websites-in-iframe](https://app.requestly.io/rules/#sharedList/1628536158787-Open-Websites-in-iframe)

#### Snippet to open linkedin in iframe in selenium
### Snippet to open linkedin in iframe in selenium

```js
require("chromedriver");
Expand Down Expand Up @@ -117,4 +123,53 @@ driver.get("https://jsbin.com/zotofulofu/2/edit?html,output");

> Try opening the above `jsbin` without the `importRequestlySharedList` step. Did `linkedin` load in `iframe` without that step?
Find more information [here](https://requestly.io/blog/2018/06/14/share-rules-with-other-users/)
### Snippet to throttle network using Selenium for Application Testing

In this example, we'll delay network request for https://www.google.com

This [SharedList](https://app.requestly.io/rules/#sharedList/1631611216670-delay) will be used to delay google.com

Let's start by installing the dependencies and importing them into our project

```js
npm install selenium-webdriver @requestly/selenium
```

```js
require("chromedriver");
const { Builder } = require("selenium-webdriver");
const chrome = require("selenium-webdriver/chrome");
const {
getRequestlyExtension,
importRequestlySharedList,
} = require("@requestly/selenium");
```

Now that we've all the dependencies into our project, let's create a variable to store our shared list link

```js
const sharedListUrl =
"https://app.requestly.io/rules/#sharedList/1631611216670-delay";
```

We now have all the components to write our function.

```js
async function delayGoogle() {
const options = new chrome.Options().addExtensions(
getRequestlyExtension("chrome") // This installs requestly chrome extension in your testing instance
);

const driver = new Builder()
.forBrowser("chrome")
.setChromeOptions(options)
.build();

await importRequestlySharedList(driver, sharedListUrl); // Here we import the shared list we created some time back
driver.get("http://www.google.com/");
}
```

Now, on running the function, we'll experience a network delay for google.com

Find more detailed steps, click [here](https://requestly.io/blog/2021/09/20/automate-testing-via-selenium/)

0 comments on commit 343c87a

Please sign in to comment.