【发布时间】:2018-05-11 07:09:18
【问题描述】:
要求 Selenium 在我的 Web 应用程序中单击选项卡(或按钮)时出现错误。请参阅下面的代码和 CSS 选择器:
错误:selenium.common.exceptions.NoSuchElementException:消息:无法定位元素:#tab-item-1090 > md-icon:nth-child(1)
按钮患者页面按钮的 CSS 选择器:#tab-item-1090 > md-icon:nth-child(1)
脚本代码。它在 'patientPage' 变量处中断。
def createPatient():
browser = webdriver.Firefox()
browser.get(confidential)
emailElem = browser.find_element_by_css_selector('#input_0')
emailElem.send_keys('bconfidential')
passElem = browser.find_element_by_css_selector('#input_1')
passElem.send_keys('confidential')
loginElem = browser.find_element_by_css_selector('button.md-raised:nth-child(4)').click()
patientPage = browser.find_element_by_css_selector('#tab-item-1090 > md-icon:nth-child(1)').click()
patientOptions = browser.find_element_by_css_selector('.md-fab > button:nth-child(1)').click()
patientOption_Create = browser.find_element_by_css_selector('#menu_container_981 > md-menu-content:nth-child(1) > md-menu-item:nth-child(1) > button:nth-child(1)').click()
patientCreate_Firstname = browser.find_element_by_css_selector('#input_1072')
patientCreate_Firstname.send_keys('Test')
patientCreate_Lastname = browser.find_element_by_css_selector('#input_1073').click()
patientCreate_Lastname.send_keys('Script')
patientCreate_SSN = browser.find_element_by_css_selector('#input_1074')
patientCreate_SSN.send_keys('9812')
patientCreate_DOB = browser.find_element_by_css_selector('.md-datepicker-triangle-button').click()
patientCreate_DOB_Month = browser.find_element_by_css_selector('#md-0-year-2015-8-1 > span:nth-child(1)').click()
patientCreate_DOB_Day = browser.find_element_by_css_selector('#md-0-month-2015-8-16 > span:nth-child(1)').click()
patientCreate_Submit = browser.find_element_by_css_selector('button.md-raised:nth-child(2)').click()
createPatient()
我不确定为什么找不到这个 CSS 元素,但是可以通过 CSS 选择器找到登录按钮的元素。我已经尝试过使用 Xpath。有人可以帮忙吗?
谢谢, 酒吧
【问题讨论】:
-
在描述中你说的是
#tab-item-1090 > md-icon:nth-child(1),但在代码中你有('#tab-item-1090 > div:nth-child(3)')。是否可以在该按钮中添加一个唯一的id以便您不必遍历 Selenium 中的 DOM?编辑:我看不到问题,因为我不知道 DOM,但可能选择器不正确.. -
嘿 DrNio,我已经编辑了代码。我尝试了这两个选择器都没有运气。什么是 DOM?
-
DOM = "Domain Object Model" 它是从 html 网页构建的节点的结构化树,您的代码正在使用这些选择器遍历这些节点。
-
简单 DOM 示例
<html> <body> <p class="content">Site content goes here.</p> </body> <html>这是在 Selinium 中定位按钮的方式content = driver.find_element_by_css_selector('p.content')
标签: jquery python html css selenium