使用selenium在元素中选择并输入文本

问题描述 投票:0回答:1

我正在尝试使用 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()
python selenium-webdriver automation zoom-sdk
1个回答
0
投票

可能该元素在 DOM 中无法立即可用(即使在等待之后),或者缩放正在使用 iframe,除非您切换到它,否则 selenium 无法与之交互。

  1. zoom 可能已将此输入嵌套在 iframe 内。尝试先切换到 iframe,如下所示: iframe = driver.find_element(By.TAG_NAME, 'iframe') driver.switch_to.frame(iframe)]

然后你就可以像往常一样寻找你的元素了。

  1. 有时元素确实存在,但只是不可交互。您可以尝试 element_to_be_clickable 来代替visibility_of_element_ located。

  2. Zoom 可能会动态加载输入字段,因此可以尝试等待整个表单或 DOM 层次结构中更高层的内容出现,然后再进行输入。

如果这些都不起作用,请发布任何新的错误或消息,我会尽力提供更多帮助

© www.soinside.com 2019 - 2024. All rights reserved.