xiaochenchdn 发表于 2022-8-15 16:12

python仿照别人功能时发现的一个问题,求大佬解答

求助各位大佬。
我想知道图片中,Action(tpms["广告"]).click(Point(474,925)).sleep(2),是如何在调用click后继续使用.调用sleep的

pj-Yang 发表于 2022-8-15 16:53

click返回的值有sleep方法就可以接着调用

MyModHeaven 发表于 2022-8-15 21:33

pj-Yang 发表于 2022-8-15 16:53
click返回的值有sleep方法就可以接着调用

- 好像不是这样吧

- 做个实验,验证一下:

```py
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains

browser = webdriver.Chrome()
browser.get('https://www.baidu.com/')
a = ActionChains(browser).click(browser.find_element(By.ID, 'su'))
print(type(a))
```

- 类型是:`<class 'selenium.webdriver.common.action_chains.ActionChains'>`,没有使用 `perform()` 方法之前,都是 `ActionChains` 对象,但是 `ActionChains` 并没有 sleep()

pj-Yang 发表于 2022-8-16 09:07

本帖最后由 pj-Yang 于 2022-8-16 09:09 编辑

MyModHeaven 发表于 2022-8-15 21:33
- 好像不是这样吧

- 做个实验,验证一下:


Action(tpms["广告"]).click(Point(474,925)).sleep(2)
#与下面的是等同的
a = Action(tpms["广告"]).click(Point(474,925))
a.sleep(2)

这是楼主代码的情况,你的代码如果能
ActionChains(browser).click(browser.find_element(By.ID, 'su')).sleep(2)

就能
a = ActionChains(browser).click(browser.find_element(By.ID, 'su'))
a.sleep(2)


xiaochenchdn 发表于 2022-8-16 18:56

pj-Yang 发表于 2022-8-16 09:07

Action(tpms["广告"]).click(Point(474,925)).sleep(2)
#与下面的是等同的


感谢大佬回复,看了你的回复,有点启发,回去翻了一下,知道该怎么弄了,非常感谢,发现只要return self就可以了,谢谢

xiaochenchdn 发表于 2022-8-16 18:57

MyModHeaven 发表于 2022-8-15 21:33
- 好像不是这样吧

- 做个实验,验证一下:


谢谢大佬回复,我已经找到方法了,十分感谢
页: [1]
查看完整版本: python仿照别人功能时发现的一个问题,求大佬解答