单击对话框内的可见关闭按钮

问题描述:

有潜在的问题。我有一个覆盖表单,只有在成功注册后才会出现。我也尝试过X路径,但这并没有帮助(正如承认它)。单击对话框内的可见关闭按钮

现在我正在尝试让一个类识别(完整的覆盖表单),然后单击表单上的'X'链接。但问题是复合类。

这是一个认识的覆盖形成完整的类:

ui-dialog ui-widget ui-widget-content ui-corner-all registerModel-main-dialog ui-draggable signup_thanks 

这是 'X' 链接类:

ui-icon ui-icon-closethick 

该网站是http://www.saksoff5th.com/

+1

如果你希望得到答案,那么你应该从你试图控制的网页上发布相关的Python代码和相关的HTML片段。 –

+0

当您尝试与元素进行交互时发生了什么?是否抛出异常? – Richard

+0

请参阅代码。我正在使用的网站是saksoff5th.com – user3337644

鉴于你网站是http://saksoff5th.com,我可以为你提供工作代码。

from selenium import webdriver 
from selenium.webdriver.support.ui import WebDriverWait 

driver = webdriver.Firefox() 
driver.get("http://www.saksoff5th.com/") 

driver.implicitly_wait(10) # seconds 

driver.find_element_by_css_selector(".sign-in > span").click() 
driver.find_element_by_css_selector(".ui-dialog[style*='display: block'] .ui-icon-closethick").click() 

# If you prefer explicit wait, you can do these 
# WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_css_selector(".sign-in > span")).click() 
# WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_css_selector(".ui-dialog[style*='display: block'] .ui-icon-closethick")).click() 

既然你没有提供你的代码,我想与您的代码可能存在两个问题:

  • 您没有使用WebDriverWait,这是之前点击需要的,因为你的元素是不可用立即。
  • 还有另外两个具有相同类名的对话框,您需要找到可见的对话框。

如果您对答案感到满意,请接受如this。否则,请在下面提供反馈。

+0

这是我得到的错误: - 文件“C:\ Python27 \ lib \ selenium \ webdriver \ remote \ errorhandler.py”,第164行,在check_response raise exception_class(message,screen ,stacktrace) NoSuchElementException:消息:u'无法定位元素:{“method”:“css selector”,“selector”:“。ui-dialog [style * = \'display:block \'] .ui-icon -closethick“}”;堆栈跟踪: – user3337644

+0

这是我using.from进口硒webdriver的 从selenium.webdriver.common.keys代码导入从selenium.webdriver.common.by进口通过 从selenium.webdriver.support.ui导入密钥 WebDriverWait 从进口selenium.webdriver.support作为expected_conditions EC 浏览器= webdriver.Firefox() browser.get( 'http://www.saksoff5th.com') browser.find_element_by_partial_link_text( '欢迎')。单击() 浏览器.switch_to_frame('loginModel') browser.find_element_by_xpath(“// * [@ id ='dwfrm_login_username']”)。send_keys('[email protected]') – user3337644

+0

elem1 = browser.find_element_by_class_name('selectLogin') a = ele m1.find_element_by_id( 'login1')。单击() browser.find_element_by_id( 'dwfrm_login_register')。单击() browser.switch_to_frame( 'registerModel') browser.implicitly_wait(10) browser.find_element_by_id( 'dwfrm_profile_customer_firstname' ).send_keys('Hello') browser.find_element_by_id('dwfrm_profile_customer_lastname')。send_keys('Sharma') 浏览器。find_element_by_id( 'dwfrm_profile_customer_zippostalcode')。send_keys( '07302') – user3337644