IP | Country | PORT | ADDED |
---|---|---|---|
27.109.215.216 | mo | 80 | 35 minutes ago |
194.182.163.117 | ch | 3128 | 35 minutes ago |
103.118.47.243 | kh | 8080 | 35 minutes ago |
103.118.46.61 | kh | 8080 | 35 minutes ago |
188.40.59.208 | de | 3128 | 35 minutes ago |
220.248.70.237 | cn | 9002 | 35 minutes ago |
143.42.66.91 | sg | 80 | 35 minutes ago |
203.99.240.179 | jp | 80 | 35 minutes ago |
213.143.113.82 | at | 80 | 35 minutes ago |
102.165.58.218 | kh | 8080 | 35 minutes ago |
62.99.138.162 | at | 80 | 35 minutes ago |
203.99.240.182 | jp | 80 | 35 minutes ago |
41.230.216.70 | tn | 80 | 35 minutes ago |
103.216.50.11 | kh | 8080 | 35 minutes ago |
154.236.177.101 | eg | 1977 | 35 minutes ago |
103.63.190.107 | kh | 8080 | 35 minutes ago |
128.140.113.110 | de | 5678 | 35 minutes ago |
91.241.217.58 | ua | 9090 | 35 minutes ago |
103.118.46.176 | kh | 8080 | 35 minutes ago |
89.145.162.81 | de | 1080 | 35 minutes ago |
Simple tool for complete proxy management - purchase, renewal, IP list update, binding change, upload lists. With easy integration into all popular programming languages, PapaProxy API is a great choice for developers looking to optimize their systems.
Quick and easy integration.
Full control and management of proxies via API.
Extensive documentation for a quick start.
Compatible with any programming language that supports HTTP requests.
Ready to improve your product? Explore our API and start integrating today!
And 500+ more programming tools and languages
Most often it is used to substitute your real IP address. An example of when this is needed: watching shows on Netflix that are only available to US users. A proxy can be used to make a user logging in from anywhere in the world will be identified by the IP address as a US user. Another option is to test your site through a local web server. A proxy in this case is used to intercept all the traffic in order to analyze it further for errors and failures.
In Swift 4 and later, the Decodable protocol provides a convenient way to parse JSON data into Swift objects. Here's an example demonstrating how to use the Decodable protocol to parse JSON in Swift:
Assuming you have the following JSON data:
{
"name": "John Doe",
"age": 30,
"city": "New York"
}
And you want to create a Swift struct to represent this data:
import Foundation
// Define a struct conforming to Decodable
struct Person: Decodable {
let name: String
let age: Int
let city: String
}
// JSON data
let jsonData = """
{
"name": "John Doe",
"age": 30,
"city": "New York"
}
""".data(using: .utf8)!
// Use JSONDecoder to decode JSON data into a Person object
do {
let person = try JSONDecoder().decode(Person.self, from: jsonData)
print("Name: \(person.name)")
print("Age: \(person.age)")
print("City: \(person.city)")
} catch {
print("Error decoding JSON: \(error)")
}
In this example:
Person
struct that conforms to the Decodable
protocol. The struct's properties match the keys in the JSON data.Data
using data(using:)
.JSONDecoder
to decode the JSON data into an instance of the Person
struct.Ensure that the keys in your Swift struct match the keys in your JSON data, and the data types match accordingly. The JSONDecoder
automatically maps the JSON data to the struct based on the property names.
This example assumes a simple JSON structure. If your JSON structure is more complex, you may need to define additional structs conforming to Decodable
to represent nested structures.
To run GUI autotests in GitLab CI\CD using Docker, Selenium, and PyTest, you can follow these steps:
1. Create a .gitlab-ci.yml file in the root directory of your project. This file will define the pipeline and the jobs for your CI\CD process.
2. Configure the pipeline to use the appropriate image for your tests. In this case, you can use a Python image with the required dependencies installed.
3. Define the before_script section to set up the environment for the tests, including installing the necessary packages and downloading the required drivers for Selenium.
4. Define the test job to run the PyTest tests using the Selenium WebDriver.
Here's an example of a .gitlab-ci.yml file:
stages:
- test
variables:
SELENIUM_CHROME_DRIVER: '102.0.5005.62'
SELENIUM_FIREFOX_DRIVER: '0.26.0'
image: python:3.8
cache:
paths:
- .venv
- requirements.txt
before_script:
- apt-get update -qq
- apt-get install -y --no-install-recommends \
build-essential \
wget \
xvfb \
xvfb-run
- pip install --upgrade pip
- pip install --quiet --upgrade pytest
- pip install --quiet selenium
- pip install --quiet webdriver-manager
- wget https://github.com/SeleniumHQ/selenium/releases/download/v${SELENIUM_CHROME_DRIVER}/chromedriver_linux64.zip
- unzip chromedriver_linux64.zip chromedriver
- wget https://github.com/SeleniumHQ/selenium/releases/download/v${SELENIUM_FIREFOX_DRIVER}/geckodriver-v${SELENIUM_FIREFOX_DRIVER}
- mv geckodriver-v${SELENIUM_FIREFOX_DRIVER} geckodriver
test:
stage: test
script:
- pytest tests/
tags:
- selenium
artifacts:
reports:
- html
only:
- master
- merge_requests
This .gitlab-ci.yml file defines a single stage called test that runs the PyTest tests in the tests/ directory. The before_script section installs the necessary dependencies, downloads the Selenium WebDriver for Chrome and Firefox, and sets up the environment for running the tests.
The tags: - selenium line ensures that the job runs on a runner with the selenium tag, which should have the appropriate Selenium WebDriver installed. The artifacts: reports: - html line enables the generation of HTML reports for the test results.
The only: - master - merge_requests line specifies that the tests should be run on every commit to the master branch and on every merge request.
Once you've set up the .gitlab-ci.yml file, commit and push it to your repository. Then, create a new merge request or push to the master branch to trigger the CI\CD pipeline and run the GUI autotests using Docker, Selenium, and PyTest.
Selenium is a popular tool for automating web browser interactions, but it does not have built-in support for interacting with browser push notifications. Push notifications are a feature of the browser itself, and Selenium operates at a lower level, interacting with the Document Object Model (DOM) and simulating user actions.
However, you can use Selenium in combination with JavaScript to interact with push notifications. Here's a step-by-step guide on how to do this:
1. Set up your Selenium environment: Make sure you have the necessary Selenium libraries and a web driver installed for the browser you want to automate.
2. Launch the browser and navigate to the website that triggers the push notification.
3. Wait for the push notification to appear. You can use Selenium's WebDriverWait and expected conditions to wait for the notification to appear.
4. Execute a JavaScript command to interact with the push notification. You can use Selenium's execute_script method to run JavaScript code that interacts with the push notification.
Here's an example Python script using Selenium and the Chrome WebDriver that demonstrates these steps:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# Set up the Chrome WebDriver
driver = webdriver.Chrome()
# Navigate to the website that triggers the push notification
driver.get("https://example.com")
# Wait for the push notification to appear
wait = WebDriverWait(driver, 10)
push_notification = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "div.push-notification")))
# Execute JavaScript to click the push notification
driver.execute_script("arguments[0].click();", push_notification)
# Perform any additional actions after clicking the push notification
# ...
# Close the browser
driver.quit()
Please replace the "div.push-notification" CSS selector with the appropriate selector for the push notification element on the website you are working with. Also, make sure to adjust the wait time (10 seconds in this example) as needed for the push notification to appear.
Keep in mind that this approach relies on executing JavaScript code, which can be more brittle than using Selenium's native methods. It's essential to handle exceptions and edge cases, such as the push notification not appearing within the expected time frame.
Go to the settings (the icon in the form of three dots) and open the section "Settings". In the tab at the very bottom, click on "Advanced settings". Click on "Open proxy settings for computer" and in the window that appears, click on "Network settings". Find the line "Automatic detection of parameters", uncheck it, and then, in the section "Proxy", activate the option "Use a proxy server". Enter the proxy host and port in the appropriate fields, and then click "Apply".
What else…