mherrmann/helium — 8.3k★ trên GitHub (Python). Lighter web automation with Python
Tóm tắt dựng từ metadata GitHub của chính dự án — chưa có bài review TopGit. Trang sẽ tự động cập nhật khi bài review đầy đủ được xuất bản.
VÌ SAO CHƯA CÓ REVIEW
TopGit viết bài đầy đủ cho repo có nhiều sao nhất và được yêu cầu nhiều nhất. Trang này là snapshot trong thời gian chờ — xem README gốc ở tab READ ME.
Helium is a Python library for automating browsers such as Chrome and Firefox.
For example:
Installation
To get started with Helium, you need Python 3 and Chrome or Firefox.
I would recommend creating a virtual environment. This lets you install Helium
for just your current project, instead of globally on your whole computer.
To create and activate a virtual environment, type the following commands into
a command prompt window:
python3 -m venv venv
# On Mac/Linux:
source venv/bin/activate
# On Windows:
call venv\scripts\activate.bat
Then, you can install Helium with pip:
python -m pip install helium
Now enter python into the command prompt and (for instance) the commands in
the animation at the top of this page (from helium import *, ...).
Your first script
I've compiled a cheatsheet that quickly teaches you all
you need to know to be productive with Helium. For a more complete reference of
Helium's features, please see the
documentation.
Connection to Selenium
Under the hood, Helium forwards each call to Selenium. The difference is that
Helium's API is much more high-level. In Selenium, you need to use HTML IDs,
XPaths and CSS selectors to identify web page elements. Helium on the other hand
lets you refer to elements by user-visible labels. As a result, Helium scripts
are typically 30-50% shorter than similar Selenium scripts. What's more, they
are easier to read and more stable with respect to changes in the underlying web
page.
Because Helium is simply a wrapper around Selenium, you can freely mix the two
libraries. For example:
# A Helium function:
driver = start_chrome()
# A Selenium API:
driver.execute_script("alert('Hi!');")
So in other words, you don't lose anything by using Helium over pure Selenium.
In addition to its more high-level API, Helium simplifies further tasks that are
traditionally painful in Selenium:
iFrames: Unlike Selenium, Helium lets you interact with elements inside
nested iFrames, without having to first "switch to" the iFrame.
Window management. Helium notices when popups open or close and focuses /
defocuses them like a user would. You can also easily switch to a window by
(parts of) its title. No more having to iterate over Selenium window handles.
Implicit waits. By default, if you try click on an element with Selenium
and that element is not yet present on the page, your script fails. Helium by
default waits up to 10 seconds for the element to appear.
Explicit waits. Helium gives you a much nicer API for waiting for a
condition on the web page to become true. For example: To wait for an element
to appear in Selenium, you would write:
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "myDynamicElement"))
)
With Helium, you can write:
wait_until(Button('Download').exists)
Status of this project
I have too little spare time to maintain this project for free. If you'd like
my help, please go to my web site to ask about my
consulting rates. Otherwise, unless it is very easy for me, I will usually not
respond to emails or issues on the issue tracker. I will however accept and
merge PRs. So if you add some functionality to Helium that may be useful for
others, do share it with us by creating a Pull Request. For instructions, please
see Contributing below.
How you can help
I find Helium extremely useful in my own projects and feel it should be more
widely known. Here's how you can help with this:
Star this project on GitHub.
Tell your friends and colleagues about it.
Share it on Twitter with one click
Share it on other social media
Write a blog post about Helium.
With this, I think we can eventually make Helium the de-facto standard for web
automation in Python.
Contributing
Pull Requests are very welcome. Please follow the same coding conventions as the
rest of the code, in particular the use of tabs over spaces. Also, read through my
PR guidelines.
Doing this will save you (and me) unnecessary effort.
Before you submit a PR, ensure that the tests still work:
pip install -Ur requirements/test.txt
python setup.py test
This runs the tests against Chrome. To run them against Firefox, set the
environment variable TEST_BROWSER to firefox. Eg. on Mac/Linux:
TEST_BROWSER=firefox python setup.py test
On Windows:
set TEST_BROWSER=firefox
python setup.py test
If you do add new functionality, you should also add tests for it. Please see
the tests/ directory for what this might look like.
History
I (Michael Herrmann) originally developed Helium in 2013 for a Polish IT startup
called BugFree software. (It could be that you have seen Helium before at
https://heliumhq.com.) We shut down the company at the end of 2019 and I felt it
would be a shame if Helium simply disappeared from the face of the earth. So I
invested some time to modernize it and bring it into a state suitable for open
source.
Helium used to be available for both Java and Python. But because I now only
use it from Python, I didn't have time to bring the Java implementation up to
speed as well. Similarly for Internet Explorer: Helium used to support it, but
since I have no need for it, I removed the (probably broken) old implementation.
The name Helium was chosen because it is also a chemical element like Selenium,
but it is lighter.
mherrmann/helium thuộc nhóm Automation trên TopGit, cùng 10 topic GitHub. Trang Trending và Topics liệt kê các repo cùng số sao và cùng ngôn ngữ để so sánh.
Đọc thêm về mherrmann/helium ở đâu?
Trang TopGit này là một snapshot — tab "Readme" hiển thị nguyên văn README của repo (đã bỏ link, giữ ảnh). Repo GitHub ở github.com/mherrmann/helium là nguồn chính thức.
mherrmann/helium có bao nhiêu sao?
mherrmann/helium có 8.3k sao GitHub — tải lại trang để xem số mới nhất, hoặc xem trực tiếp github.com/mherrmann/helium. TopGit phản chiếu số sao của GitHub nhưng không cam kết đến từng phút.
mherrmann/helium có những chủ đề gì?
GitHub topics của mherrmann/helium: "chrome", "firefox", "helium", "python", "python3", "selenium", "selenium-python", "web-automation", "web-scraping", "webdriver". TopGit xếp repo vào nhóm Automation.
mherrmann/helium còn đang phát triển không?
Commit gần nhất trên mherrmann/helium là 12 ngày trước (theo timestamp GitHub). Repo có 513 fork — một chỉ báo về mức độ quan tâm của cộng đồng.
mherrmann/helium viết bằng ngôn ngữ gì?
mherrmann/helium chủ yếu viết bằng Python. Trường "language" của GitHub dựa trên phần lớn byte ở nhánh mặc định.
Vì sao mherrmann/helium được xếp vào nhóm Automation?
TopGit xếp mherrmann/helium vào nhóm Automation dựa trên GitHub topics và mô tả của repo (gắn thẻ: "chrome", "firefox", "helium"). Việc phân loại dựa trên metadata thật của repo, không phải đoán theo cảm tính biên tập.
Đọc đầy đủ README ở tab phía trên.
Vẫn đang phân vân về helium?
Một cú bấm sẽ gửi câu hỏi kèm trang này cho AI — xem AI nói gì về helium.