Java 如果语句(element.click或break)不起作用
我有一个Java 如果语句(element.click或break)不起作用,java,selenium-webdriver,Java,Selenium Webdriver,我有一个标签列表,我需要单击包含特定数字的标签(比如4) 我不明白if语句(作为元素。click();或break;不工作)有什么问题。。。有人能帮忙吗?我想您可以通过 "//div[@class='divClass']/ul[@class='ulClass']/li[text()='4']" 要获取具有所需值的li标记,请尝试以下代码:- String value = driver.findElement(By.xpath("//div[@class='divClass']/ul[@clas
标签列表,我需要单击包含特定数字的标签(比如4)
我不明白
if
语句(作为元素。click();
或break;
不工作)有什么问题。。。有人能帮忙吗?我想您可以通过
"//div[@class='divClass']/ul[@class='ulClass']/li[text()='4']"
要获取具有所需值的li标记,请尝试以下代码:-
String value = driver.findElement(By.xpath("//div[@class='divClass']/ul[@class='ulClass']/li[4]")).getText();
希望它能帮助您:)实际上控件没有进入if循环,
使用下面的方法
字符串a=“4”;
List Allegements=driver.findElements(By.xpath(“//div[@class='divClass']]/ul[@class='ulClass']/li”);
for(WebElement:等位基因){
字符串bText=element.getText();
系统输出打印LN(a+“?”+B文本);
如果(a等于(b文本)){
元素。单击();
打破
}
}
或
使用javascript单击而不是普通单击。。。。。。。。。。。。。。。。。。。。。。。
字符串a=“4”;
List Allegements=driver.findElements(By.xpath(“//div[@class='divClass']]/ul[@class='ulClass']/li”)`在这里输入代码`
对于(inti=0;i@Manjunatha.N
我不知道控件为什么没有进入if
语句中,但我设法使它工作:
int a = 4;
List<WebElement> allElements = driver.findElements(By.xpath("//div[@class='divClass']/ul[@class='ulClass']/li"));
for (WebElement element: allElements) {
String bText = element.getText();
int b = Integer.parseInt(bText);
if (a != b) {
System.out.println(a + " = " + b + "? are not equal!");
} else {
System.out.println(a + " = " + b + "? are equal!");
element.click();
break;
}
}
然后单击所需的元素!!!!这是实际的eclipse输出,还是您自己将其作为您看到的输出的一个示例?我只是问,因为我看不出if状态有任何错误。您可以给每个项和id,并使用带有id而不是xpath的getElement。这是eclipse的输出(还有真正的代码……我只修改类名,但只要Eclipse打印出正确的数字,这在这里就不重要了)。我不能修改网站,它在www.Shubham Jain上。我修改代码如下:'code'String xpathText=“\”//div[@class='divClass']/ul[@class='ulClass']/li[text()='+a+']\”;System.out.println(xpathText);WebElement number1=driver.findElement(By.xpath(xpathText));number1.click();“code”错误是(xpathText打印正确):线程“main”org.openqa.selenium.InvalidSelectorException中的异常:给定的选择器“//div[@class='divClass']/ul[@class='ulClass']]/li[text()='4']”无效或未导致WebElement。TypeError:表达式无法转换为返回指定的类型。代码正常工作,我打印了if循环中的值,中断符工作正常,但元素仍然存在问题。单击(),因为没有单击正确的数字,但这里不是这种情况。我将深入查看网站代码,以了解为什么不能正常工作,因为使用此代码找到的元素应该是正确的。非常感谢guyz的帮助,非常感谢!请使用javascript单击而不是正常单击(int i=0;i
"//div[@class='divClass']/ul[@class='ulClass']/li[text()='4']"
String value = driver.findElement(By.xpath("//div[@class='divClass']/ul[@class='ulClass']/li[4]")).getText();
Actually the control is not going inside if loop,
use below approch
String a = "4";
List<WebElement> allElements = driver.findElements(By.xpath("//div[@class='divClass']/ul[@class='ulClass']/li"));
for (WebElement element: allElements) {
String bText = element.getText();
System.out.println(a + " ? " + bText );
if (a.equals(bText)){
element.click();
break;
}
}
OR
Use javascript click instead of normal click.......................
String a = "4";
List<WebElement> allElements = driver.findElements(By.xpath("//div[@class='divClass']/ul[@class='ulClass']/li"));`enter code here`
for(int i=0; i<allElements.size;i++)
{
if(a.equals(allElements.get(i).gettext(bText))
{
javascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("arguments[0].click();", allElements.get(i));
}
}
int a = 4;
List<WebElement> allElements = driver.findElements(By.xpath("//div[@class='divClass']/ul[@class='ulClass']/li"));
for (WebElement element: allElements) {
String bText = element.getText();
int b = Integer.parseInt(bText);
if (a != b) {
System.out.println(a + " = " + b + "? are not equal!");
} else {
System.out.println(a + " = " + b + "? are equal!");
element.click();
break;
}
}
1 = 4? are not equal!
2 = 4? are not equal!
3 = 4? are not equal!
4 = 4? are equal!