【问题标题】:Unable to change text between span with Selenium using python无法使用 python 在 Selenium 的跨度之间更改文本
【发布时间】:2020-04-28 15:56:22
【问题描述】:

我正在自动化 Web 流程,但遇到了一个问题,即我有一个带有下拉按钮的 html 表单。我无法下拉按钮并更改值。我想告诉 selenium 更改跨度标签之间的文本,例如。 <span>SomeText</span> 因为这是下拉按钮更改值的地方。问题是所有标签都命名相同,我不知道如何告诉 selenium 如何更改所有值。我只能预填充输入框。 我尝试了 css 选择器、find_by_name 或 class,但没有运气。

【问题讨论】:

    标签: python selenium automation


    【解决方案1】:

    我建议诱导WebDriverWait() 并等待element_to_be_clickable() 并使用下面的xpath先单击下拉菜单,然后单击基于文本的元素。

    WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//div[@data-field-name='stage']"))).click()
    WebDriverWait(driver,10).until(EC.presence_of_element_located((By.XPATH,"//ul[@class='chosen-results']//li[contains(.,'Closed')]"))).click()
    

    您需要导入以下库。

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By
    

    【讨论】:

    • 嘿,谢谢!我测试过的类似的东西。但是当我尝试您的代码时,它会单击下拉菜单发生的位置,但似乎找不到跨度文本。 raise TimeoutException(message, screen, stacktrace) selenium.common.exceptions.TimeoutException: Message:
    • @uzdisral :您可以查看presence_of_element_located,而不是可点击的,我已经更新了,让我知道这是怎么回事?
    • 我刚刚做了,我得到了同样的信息。我刚刚添加了另一张图片,如果有帮助的话。这些值在灰色文本中(可能是隐藏的)?。但看起来我可以通过索引选择点击什么?
    • 是的,这行得通:D 我认为它不能完成。非常感谢,帮助很大!
    • 这是一个随机问题,但我可以使用WebDriverWait 来清除输入字段中的值吗?假设有一个<span>SomeText</span>,它看起来像一个带有文本的框,我可以用退格键删除它。见上图,例如:电子邮件自动填充
    猜你喜欢
    • 2022-01-15
    • 2021-12-27
    • 2013-01-13
    • 1970-01-01
    • 2021-05-07
    • 2021-06-24
    • 2023-04-01
    • 2020-02-13
    • 1970-01-01
    相关资源
    最近更新 更多