Python Selenium-无法通过XPath、css选择器、类名、标记名、id找到元素,检查iframe,检查元素是否已加载

Python Selenium-无法通过XPath、css选择器、类名、标记名、id找到元素,检查iframe,检查元素是否已加载,python,html,selenium,automation,Python,Html,Selenium,Automation,我尝试使用selenium自动化一天的开始过程,我尝试选择并单击“标记”按钮,但无论我采用何种方式,都会出现无元素错误 我尝试了XPath、css选择器、类名、标记名、id、检查iframe、检查元素是否已加载。我就是不明白 这是网站的HTML <div class="contact-list-menu-tags"> <div class="search-item popover-content-item tag with-tooltip &quo

我尝试使用selenium自动化一天的开始过程,我尝试选择并单击“标记”按钮,但无论我采用何种方式,都会出现无元素错误

我尝试了XPath、css选择器、类名、标记名、id、检查iframe、检查元素是否已加载。我就是不明白

这是网站的HTML

<div class="contact-list-menu-tags">
<div class="search-item popover-content-item tag with-tooltip ">
      -------> <span class="search-item-text popover-content-item-text">call</span> <-----
<div class="tooltip __pos-center __pos-top">
<div class="tooltip-content">
<div class="ico-hover ico-s">
<div class="ico ico-pencil ico-s __alt4 __not-hovered"></div>
<div class="ico ico-pencil ico-s __gray __hovered"></div></div>
<div class="ico-hover ico-s"><div class="ico ico-trash ico-s __alt4 __not-hovered"></div>
<div class="ico ico-trash ico-s __alt1 __hovered"></div></div></div></div></div>
<div class="search-item popover-content-item tag with-tooltip "><span class="search-item-text popover-content-item-text">CEO</span><div class="tooltip __pos-center __pos-top">
<div class="tooltip-content">
<div class="ico-hover ico-s">
<div class="ico ico-pencil ico-s __alt4 __not-hovered"></div>
<div class="ico ico-pencil ico-s __gray __hovered"></div></div>
<div class="ico-hover ico-s"><div class="ico ico-trash ico-s __alt4 __not-hovered"></div>
<div class="ico ico-trash ico-s __alt1 __hovered"></div></div></div></div></div></div>

------->调用div>div.contact-list-menu>div>div:n子项(1)>div.contact-list-menu-inner>div.contact-list-menu-tags>div:n子项(1)>span
#召唤
#/html/body/div[1]/div[1]/div/div[1]/div/div[1]/div[2]/div[6]/div[1]/span
#document.querySelector(“app>div>div.contact-list-menu>div>div:nth child(1)>div.contact-list-menu-internal>div.contact-list-menu-tags>div:nth child(1)>span”)
底部被注释掉的东西就是我所拥有/正在尝试的所有东西。其中的用户名和密码只是一个测试人员帐户,所以可以随意使用它来测试任何东西


谢谢

您的元素目标位于
标记中,您需要首先切换它

请使用
.frame\u to\u available\u和\u switch\u to \u it
方法进行处理。对于元素,可以使用xpath
//span[text()=“call”]


这个站点有延迟加载吗?也许你的标签还在那里,你必须等到它被渲染出来。也许试着做一些类似于我试过EC.presence\u of_element\u located的事情,但它只是超时并显示一条错误消息是的,我只是想知道你怎么知道它在帧标记中?我在html中看不到任何或标记?@Drethapid网页中存在
,请在浏览器中打开inspect元素,然后键入
iframe\reactContactListFrame
from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get('https://www.nimble.com/') #goes to address

#login process
loginbutton = driver.find_element_by_xpath('/html/body/nav/div[1]/ul/li[8]/a')
loginbutton.click()
time.sleep(2)

username = driver.find_element_by_xpath('/html/body/form/div/div[1]/div/div[2]/input')
username.send_keys('xasokis718@ngo1.com')

time.sleep(1)

psswrd = driver.find_element_by_xpath('/html/body/form/div/div[1]/div/div[3]/input')
psswrd.send_keys('Password112')

signin = driver.find_element_by_xpath('/html/body/form/div/div[1]/div/button')
signin.click()
time.sleep(2)

#go to contacts
driver.get('https://app.nimble.com/#app/contacts/list')
time.sleep(4)


#search tag
calltag = driver.find_element_by_css_selector('span.content')
calltag.click()
driver.find

#//*[@id="app"]/div/div[1]/div/div[1]/div[2]/div[6]/div[1]/span
#document.querySelector("#app > div > div.contact-list-menu > div > div:nth-child(1) > div.contact-list-menu-inner > div.contact-list-menu-tags > div:nth-child(1) > span")
#app > div > div.contact-list-menu > div > div:nth-child(1) > div.contact-list-menu-inner > div.contact-list-menu-tags > div:nth-child(1) > span
#<span class="search-item-text popover-content-item-text">call</span>
#/html/body/div[1]/div[1]/div/div[1]/div/div[1]/div[2]/div[6]/div[1]/span
#document.querySelector("#app > div > div.contact-list-menu > div > div:nth-child(1) > div.contact-list-menu-inner > div.contact-list-menu-tags > div:nth-child(1) > span")
#go to contacts
driver.get('https://app.nimble.com/#app/contacts/list')
wait = WebDriverWait(driver, 20)
wait.until(EC.frame_to_be_available_and_switch_to_it((By.ID, 'reactContactListFrame')))
element = wait.until(EC.element_to_be_clickable((By.XPATH, '//span[text()="call"]')))
element.click()