在获取元素以单击加号时,代码失败。下面是代码。
from selenium import webdriver driver = webdriver.Chrome() driver.get("http://localhost:2012") #colIdentList = driver.find_element_by_class_name('colIdent') for result in driver.find_elements_by_class_name('colIdent'): result.click() #wait = WebDriverWait(driver, 5) for plus in driver.find_elements_by_class_name('collapser'): plus[0].click() for methodDiv in driver.find_elements_by_class_name('willnotrender'): value = methodDiv[0].text driver.close()
“collapser”是驻留在多个div和td下的div的类。我正在粘贴该组件的XPATH作为引用。但是XPATH并不总是相同的,而是不同的。我为元素找到了两个XPath。
XPATH:1/html/body/div[3]/div/ul/li2/div2/div[3]/div2/html/body/div[3]/div/ul/li2/div/div[3]/div
经过一些搜索和朋友Mahesh Kosuri的一点帮助,我终于完成了代码。我错过了网页有多个框架的事实。因此,selenium无法找到我正在搜索的元素。
下面是为我完成任务的代码。
from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC import pandas as pd timetook,methodname,dbcalls=[],[],[] runnum,sheetname,counter=3,7,0 driver = webdriver.Chrome() driver.get("http://localhost:2012/") result in driver.find_elements_by_class_name('colIdent'): try: result.click() counter+=1 if counter>8: driver.execute_script("document.querySelector('body > div.trace-list-area').scrollBy(0,75)") except: driver.execute_script("document.querySelector('body > div.trace-list-area').scrollBy(0,100)") result.click() driver.switch_to_frame(driver.find_element_by_id('trace-frame')) wait = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR,'body > div.scroll-area > div > ul > li:nth-child(2) > div > div.flex-horizontal > div > button'))) timetook.append(driver.find_elements_by_css_selector('body > div.heading-trace-panel > div.tracebar-details > div > table > tbody > tr > td:nth-child(2) > div.tracebar-value')[0].text) driver.find_elements_by_css_selector('body > div.scroll-area > div > ul > li:nth-child(2) > div > div.flex-horizontal > div > button')[0].click() methodname.append(driver.find_elements_by_css_selector('#ui_0_stacks > li.logblock.backdrop-timing.logblock-message > div > div.flex-horizontal > div.prettyprint-container')[0].text) try: dbcalls.append(driver.find_elements_by_css_selector('body > div.heading-trace-panel > div.tracebar-details > div > table > tbody > tr > td.stackNumbers > a > span')[0].get_attribute('data-badge')) except: dbcalls.append(0) driver.switch_to_default_content() df=pd.DataFrame() df["TimeTook"] = timetook df["methodName"]=methodname df["DBCalls"]=dbcalls df.to_excel("Timing Report "+str(runnum)+"_"+str(sheetname)+".xlsx") driver.close()
问题内容: 问题: 无法从CSS选择器特定元素中选择。需要验证注册用户是否可以成功更改其密码。我试过了类的不同属性来调用它。当尝试前两个示例时,结果是方法中的异常错误。最后的尝试将调用第一个类实例并重置密码字段(失败)。 尝试过: 目的: 我需要选择共享同一班级的项目。如下所示,该类是共享的。 问题答案: 编辑:因为选择器需要一个,或,但是它们本身都不是。 提供要匹配的类名,并从那里指定要选择的特
https://imgur.com/vfhp8n7.png 当我单击B按钮时,整行隐藏 我需要硒来点击B按钮,然后点击下一个B按钮 我想执行,但是数字4352,6820每次都不一样 你有什么想法吗? 编辑
问题内容: 我正在寻找一个选择器,如果它们具有特定的子元素,它将选择所有元素。例如,选择所有带孩子的人。 可能? 问题答案: 如果元素包含特定的子元素,是否可以选择? 不幸的是还没有。 在CSS2和CSS3选择器的规格不允许任何形式的亲本选配。 关于规格变更的注意事项 从现在开始,这是关于此帖子准确性的免责声明。CSS中的父选择器已经讨论了很多年。由于尚未达成共识,因此变化不断发生。我将尝试使此答
问题内容: 是否可以在CSS中选择多个具有某个特定类,id等父的元素?例如: 如果不是,是否有办法选择该元素的所有子元素? 问题答案: 是否可以在CSS中选择多个具有某个特定类,id等父的元素? 当前,不幸的是,并非没有复制整个父选择器并指定所有后代,而是1: 直到选择器3最终确定后,他们才提出了伪类表示法来进行此操作,直到最近,基本实现才开始出现。 简而言之,现在已成为标准的伪类称为。在遥远的将
我试着练习用CSS选择器获取值,我想出了这个(不像预期的那样工作) (我也尝试过) 我对的期望:第三个没有id属性和data-ad-show属性的元素被选中,其值将是所需的值3。
本文向大家介绍jQuery 选择元素的子元素,包括了jQuery 选择元素的子元素的使用技巧和注意事项,需要的朋友参考一下 示例 要选择元素的子代,可以使用children()方法。 更改元素所有子.parent元素的颜色: 该方法接受一个可选selector参数,该参数可用于过滤返回的元素。