单击对话框内的可见关闭按钮
有潜在的问题。我有一个覆盖表单,只有在成功注册后才会出现。我也尝试过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://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。否则,请在下面提供反馈。
这是我得到的错误: - 文件“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
这是我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
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
如果你希望得到答案,那么你应该从你试图控制的网页上发布相关的Python代码和相关的HTML片段。 –
当您尝试与元素进行交互时发生了什么?是否抛出异常? – Richard
请参阅代码。我正在使用的网站是saksoff5th.com – user3337644