Jquery Python Selenium单击按钮
要求Selenium单击web应用程序中的选项卡或按钮时出错。请参阅下面的代码和CSS选择器: 错误:selenium.common.exceptions.NoSuchElementException:消息:无法定位元素:tab-item-1090>md图标:nth-child1 按钮患者页面按钮的CSS选择器:tab-item-1090>md图标:nth-child1 脚本的代码。它在“patientPage”变量处中断Jquery Python Selenium单击按钮,jquery,python,html,css,selenium,Jquery,Python,Html,Css,Selenium,要求Selenium单击web应用程序中的选项卡或按钮时出错。请参阅下面的代码和CSS选择器: 错误:selenium.common.exceptions.NoSuchElementException:消息:无法定位元素:tab-item-1090>md图标:nth-child1 按钮患者页面按钮的CSS选择器:tab-item-1090>md图标:nth-child1 脚本的代码。它在“patientPage”变量处中断 def createPatient(): browser = w
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。有人能帮忙吗
谢谢,
Bar我认为错误消息是明确的:无法定位元素:tab-item-1090>md图标:nth-child1。因此,当测试运行时,选择器基本上是不正确的,并且在web应用程序中找不到元素。我建议添加一个唯一的id,例如,在web应用程序中的该元素按钮或选项卡上单击我,并用该foo替换tab-item-1090>md图标:nth-child1
编辑:有关为什么tab-item-1090>md图标:nth-child1不工作的更多帮助,我们需要查看web应用程序的DOM。查看您的脚本,我建议您需要包括对WebDriverWait方法的调用。脚本单击登录页面上的按钮,然后立即尝试单击该患者按钮。您应该等待患者按钮可点击,然后搜索它以点击它。在描述中您说的是tab-item-1090>md图标:nth-child1,但在代码中您有“tab-item-1090>div:nth-child3”。是否可以在该按钮中添加唯一的id,这样就不必遍历Selenium中的DOM?编辑:我看不到问题,因为我不知道DOM,但可能选择器不正确..嘿,DrNio,我已经编辑了代码。我尝试了这两种选择器,但都没有成功。什么是DOM?DOM=域对象模型它是从html网页构建的结构化节点树,您的代码正在使用这些选择器进行遍历。简单的DOM示例
Site content在这里。
这是您在Selinium content=driver中定位按钮的方式。通过css\u选择器“p.content”查找元素谢谢,我很感激。我正在和我的网络开发人员一起努力解决这个问题。酷!因此,最终您只需执行类似patientPage=browser的操作。通过“patient-page”选择器查找元素。单击“patient-page”按钮,以后可以更简单、更清晰、更易于维护: