我正在尝试使用 selenium 自动化缩放加入过程。
这是输入元素的 HTML 代码:
<input id="input-for-name" type="text" class="preview-meeting-info-field-input"
autocomplete="off" required="" aria-invalid="false" aria-describedby="error-for-name"
value="">
必须在那里输入姓名才能继续。
我无法在上述元素上选择并输入我的名字。我尝试使用 XPATH
//*[@id="input-for-name"]
我也尝试过 CSS SELECTOR 但没有任何效果。它给出了一个错误,指出在给定的时间范围内找不到 xpath id。 (我已经将时间范围增加到1分钟,但没有用)。
我的代码:
from selenium import webdriver
from selenium.webdriver.edge.service import Service
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
service = Service("msedgedriver.exe")
driver = webdriver.Edge(service=service)
try:
driver.get("https://app.zoom.us xxxxxx")
wait = WebDriverWait(driver, 10)
name_field = wait.until(EC.visibility_of_element_located((By.ID, "input-for-name")))
name_field.click()
name_field.send_keys("ENTER NAME HERE")
except NoSuchElementException:
print("Name input field not found. Website may have changed structure.")
finally:
driver.quit()
可能该元素在 DOM 中无法立即可用(即使在等待之后),或者缩放正在使用 iframe,除非您切换到它,否则 selenium 无法与之交互。
然后你就可以像往常一样寻找你的元素了。
有时元素确实存在,但只是不可交互。您可以尝试 element_to_be_clickable 来代替visibility_of_element_ located。
Zoom 可能会动态加载输入字段,因此可以尝试等待整个表单或 DOM 层次结构中更高层的内容出现,然后再进行输入。
如果这些都不起作用,请发布任何新的错误或消息,我会尽力提供更多帮助