有的页面打开有个按钮是不可点击,要延时几秒才会变成可点击状态,然后要处理点击后的页面。比如这个 https://ouo.io/go/yq25z
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
element = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.ID, 'btn-main')))
element.click()
在无图形界面的 Ubuntu Server 上运行,加了chrome_options.add_argument('--headless')
就不工作,加上 time.sleep(15)也不行。
在 macOS 上运行,不加--headless ,每次运行自动打开 Chrome 就能正常处理后续的工作。
请问怎么让它在无图形界面的环境也能工作?
1
jjplay 2023-07-11 11:59:20 +08:00
装虚拟屏幕 xvfb
|
3
wgit 2023-07-11 12:14:04 +08:00
不是可以等待某个元素吗 等待多少秒,然后间隔多久检查一次
还能基于标签属性 去判断按钮是否是可用状态 |
5
harrozze 2023-07-11 13:18:26 +08:00
@yaleyu #4 过若干秒截屏,看看按钮的视觉状态是什么。同时把按钮的 html computed 以后的属性打出来看看
|
6
girl1462235 2023-07-11 20:19:10 +08:00
其实。。。 你设置一个 UserAgent 就好了
|
7
girl1462235 2023-07-11 21:27:23 +08:00
|
8
yaleyu OP @girl1462235 哎,真的行,看来页面做了一定的反爬,有头时候是真正打开浏览器,无头时候被反爬了
|