mirror of
https://gitee.com/g1879/DrissionPage.git
synced 2024-12-10 04:00:23 +08:00
97 lines
2.0 KiB
Markdown
97 lines
2.0 KiB
Markdown
以下代码实现一模一样的功能,对比两者的代码量:
|
||
|
||
- 用显性等待方式查找第一个文本包含 some text 的元素。
|
||
|
||
```python
|
||
# 使用 selenium:
|
||
element = WebDriverWait(driver).until(ec.presence_of_element_located((By.XPATH, '//*[contains(text(), "some text")]')))
|
||
|
||
# 使用 DrissionPage:
|
||
element = page('some text')
|
||
```
|
||
|
||
- 跳转到第一个标签页
|
||
|
||
```python
|
||
# 使用 selenium:
|
||
driver.switch_to.window(driver.window_handles[0])
|
||
|
||
# 使用 DrissionPage:
|
||
page.to_tab(0)
|
||
```
|
||
|
||
- 按文本选择下拉列表
|
||
|
||
```python
|
||
# 使用 selenium:
|
||
from selenium.webdriver.support.select import Select
|
||
select_element = Select(element)
|
||
select_element.select_by_visible_text('text')
|
||
|
||
# 使用 DrissionPage:
|
||
element.select('text')
|
||
```
|
||
|
||
- 拖拽一个元素
|
||
|
||
```python
|
||
# 使用 selenium:
|
||
ActionChains(driver).drag_and_drop(ele1, ele2).perform()
|
||
|
||
# 使用 DrissionPage:
|
||
ele1.drag_to(ele2)
|
||
```
|
||
|
||
- 滚动窗口到底部(保持水平滚动条不变)
|
||
|
||
```python
|
||
# 使用 selenium:
|
||
driver.execute_script("window.scrollTo(document.documentElement.scrollLeft, document.body.scrollHeight);")
|
||
|
||
# 使用 DrissionPage:
|
||
page.scroll_to('bottom')
|
||
```
|
||
|
||
- 设置 headless 模式
|
||
|
||
```python
|
||
# 使用 selenium:
|
||
options = webdriver.ChromeOptions()
|
||
options.add_argument("--headless")
|
||
|
||
# 使用 DrissionPage:
|
||
set_headless()
|
||
```
|
||
|
||
- 获取伪元素内容
|
||
|
||
```python
|
||
# 使用 selenium:
|
||
text = webdriver.execute_script('return window.getComputedStyle(arguments[0], "::after").getPropertyValue("content");', element)
|
||
|
||
# 使用 DrissionPage:
|
||
text = element.after
|
||
```
|
||
|
||
- 获取 shadow-root
|
||
|
||
```python
|
||
# 使用 selenium:
|
||
shadow_element = webdriver.execute_script('return arguments[0].shadowRoot', element)
|
||
|
||
# 使用 DrissionPage:
|
||
shadow_element = element.shadow_root
|
||
```
|
||
|
||
- 用 xpath 直接获取属性或文本节点(返回文本)
|
||
|
||
```python
|
||
# 使用 selenium:
|
||
相当复杂
|
||
|
||
# 使用 DrissionPage:
|
||
class_name = element('xpath://div[@id="div_id"]/@class')
|
||
text = element('xpath://div[@id="div_id"]/text()[2]')
|
||
```
|
||
|