注册 登录
编程论坛 Python论坛

求助如何检测控件已存在,如果存在就删除它。

yll148 发布于 2023-03-25 20:12, 256 次点击
求助如何检测控件已存在,如果存在就删除它。谢谢!
11 回复
#2
东海ECS2023-03-25 20:33

要检测控件是否存在,可以使用Selenium库中的Expected Conditions,如果控件存在,Expected Conditions将返回True,否则将抛出异常。以下是一个Python程序示例,可以检测控件是否存在,如果存在就删除它:

程序代码:

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

# 创建浏览器对象
driver = webdriver.Chrome()

# 打开网页
driver.get('https://www.')

# 等待控件加载完成
wait = WebDriverWait(driver, 10)
delete_button = wait.until(EC.presence_of_element_located((By.ID, 'delete_button')))

# 检查控件是否存在
if delete_button:
    # 删除控件
    delete_button.click()

# 关闭浏览器
driver.quit()


在这个Python程序中,我们首先创建了一个Chrome浏览器对象,然后打开了一个网页。我们使用了WebDriverWait函数来等待控件加载完成,然后使用presence_of_element_located函数来检查控件是否存在。如果控件存在,我们使用click函数来删除它。最后,我们使用quit函数关闭浏览器。

需要注意的是,如果控件不存在,presence_of_element_located函数将等待10秒钟后抛出异常。如果你想要在控件不存在时不抛出异常,可以使用presence_of_element_located_with_timeout函数,并设置一个较短的超时时间。
#3
yll1482023-03-25 21:31
谢谢东海ECS老师,请问QTableWidget控件如何检测,如果存在就删除它。谢谢!
#4
东海ECS2023-03-26 12:58
可以使用以下代码来检测并删除QTableWidget控件:

程序代码:

# 判断QTableWidget是否存在
if self.tableWidget:
    # 删除QTableWidget控件
    self.tableWidget.setParent(None)
    self.tableWidget = None


在上面的代码中,我们首先检测QTableWidget是否存在,如果存在则使用setParent()方法将其从父控件中移除,并将其设置为None,以便后续操作。
#5
yll1482023-03-26 15:35
回复 4楼 东海ECS
谢谢东海老师,我借鉴别人的类做了报表录入,但出现很多问题,能麻烦老师帮我吗?谢谢!谢谢!
只有本站会员才能查看附件,请 登录
#6
yll1482023-03-26 15:37
回复 4楼 东海ECS
我想要的效果
只有本站会员才能查看附件,请 登录
#7
东海ECS2023-03-26 17:26
您想要达到什么作用?

[此贴子已经被作者于2023-3-26 20:55编辑过]

#8
yll1482023-03-26 20:59
回复 7楼 东海ECS
谢谢东海老师,我要做成点击横排表名选择对应的报表进行录入修改,目前,我做的切换表时,表格线对不上,而且,表头显示滞后,表体内容不更新,下一步我还要研究如何让录入数据回车后自动跳转到下方的单元格。
#9
yll1482023-03-26 21:02
回复 7楼 东海ECS
而且,显示的内容不到单元格边缘就换行了
#10
yll1482023-03-29 13:47
回复 7楼 东海ECS
东海老师您好!求您帮我看了吗?怎么样了?
#11
yll1482023-03-31 19:26
回复 10楼 yll148
只有本站会员才能查看附件,请 登录
#12
东海ECS2023-03-31 20:13
抱歉,我并不能了解您想要的作用
您还没有写逻辑代码

[此贴子已经被作者于2023-3-31 20:15编辑过]

1