【发布时间】:2018-08-12 08:46:10
【问题描述】:
在我正在处理的页面中 - 我有一个项目列表 (#54),对于每个项目我都有几个参数,例如:名称、价格变化、其他参数和时钟,显示为红色或绿色。请看截图
使命:了解每个项目/行的时钟是什么颜色
我制作了一个项目名称列表,我可以使用名称的专用选择器打印它的名称 - 简单的部分完成了!
其他信息
- 每种颜色的每个时钟都有一个唯一的 ID,可以说: 绿色:class='绿色', 红色:class='红色'
- 每个项目行都有一个用于整行的唯一 css 选择器,时钟选择器是该行 css 选择器内的子项
所以,对于每个项目,我想知道它的时钟是红色还是绿色。所以我尝试了以下解决方案:
1) 将时钟插入到第二个列表中,但问题来了:如果我将时钟插入到列表中,我只能这样做,但要使用“包含”CSS 选择器标识符 [class* = xxx],并且那么程序就无法区分哪个是红色,哪个是绿色
2)我有一个整行的 CSS 选择器,我试图将它放入一个列表中,然后以某种方式找到:'整行 Css > 时钟 CSS'。那也没有用。
你能告诉我如何找到每个项目的时钟颜色吗?
public static void WatchlistInstrumentsList(WebDriver driver, boolean finalstatus ,ExtentTest logger,int SocketChangeCounter) throws InterruptedException
{
int size = 2;
for (int i = 1; i < size ; i++) {
//for (int j=1 ; j<sizex ; j=j+2)
//{
// Create a list of instruments
List <WebElement> listName;
List <WebElement> rowsData;
// The selector of instrument's name
listName= driver.findElements(By.cssSelector("[id='tbody_overview_3032754']>[id^='sort_']>[data-column-name='name']>[target='_blank']"));
// The selector of a whole row (all datat inside)
rowsData= driver.findElements(By.cssSelector("[id='tbody_overview_3032754']>[id^='sort_']"));
// ** Works on Browser search [id='tbody_overview_3032754']>[id^='sort_']>[data-column-name='name']>[target='_blank'] **//
size = listName.size();
try {
String name = listName.get(i).getText(); // instrument's name taken from list
System.out.println("Instrument's name:" +name +" , Instrument's counter:" +i);
finalstatus = true;
// ***HOW TO FIND THE CLOCK COLOR ****** ///
}
//TestClockOfInstrument.runTestClockWatchlist(driver, finalstatus, logger, i, SocketChangeCounter);
catch(Exception e)
{
System.out.println(e);
}
}
}
【问题讨论】:
-
截图的网址是什么?
-
链接:investing.com/portfolio/?portfolioID=NTNiMWAwMG5kMmlhNG4%3D 通过电子邮件登录:dimainvesting@gmail.com ||密码:de123456
-
Tnx,我会尝试一些不同的东西
-
很棒的兄弟我真的很感激
-
请阅读为什么是screenshot of HTML or code or error is a bad idea。考虑使用基于格式化文本的相关 HTML、代码试验和错误堆栈跟踪来更新问题。
标签: java selenium selenium-webdriver css-selectors elements