Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Python Selenium单击按钮_Jquery_Python_Html_Css_Selenium - Fatal编程技术网

Jquery Python Selenium单击按钮

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

要求Selenium单击web应用程序中的选项卡或按钮时出错。请参阅下面的代码和CSS选择器:

错误:selenium.common.exceptions.NoSuchElementException:消息:无法定位元素:tab-item-1090>md图标:nth-child1

按钮患者页面按钮的CSS选择器:tab-item-1090>md图标:nth-child1

脚本的代码。它在“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。有人能帮忙吗

谢谢,
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”按钮,以后可以更简单、更清晰、更易于维护: