2016-03-24 2 views
-2

Попытка сделать простой бот, но я столкнулся с этой ошибкой.Ошибка Java: не может быть применена слишком java.lang.String

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.chrome.ChromeDriver; 


public class Main { 
    public static void main(String[] args) throws InterruptedException { 

     WebDriver driver = new ChromeDriver(); 
     driver.get("https://***.com/#/"); 
     driver.findElement(By.xpath("//*[@id=\"homepage-hero\"]/a/img")).click(); // clicks site steam sign in button 
     WebElement steamUsername = driver.findElement(By.xpath("//*[@id=\"steamAccountName\"]")); 
     WebElement steamPassword = driver.findElement(By.xpath("//*[@id=\"steamPassword\"]")); 

     steamUsername.sendKeys("***"); 
     steamPassword.sendKeys("***"); 
     Thread.sleep(45000); 
     WebElement updatedBalance = driver.findElement(By.xpath("//*[@id=\"header-balance\"]")); 
     WebElement balance = driver.findElement(By.xpath("//*[@id=\"header-balance\"]")); 

     if(updatedBalance.getText() > balance.getText()); { 
      System.out.println("hello"); 
     } 

    } 
} 

    error: could not be applied too java.lang.String 
+2

Вы должны отредактировать свое сообщение и скопировать/вставить сообщение об ошибке COMPLETE. Также укажите строку в коде, где происходит ошибка. Пожалуйста, посетите [помощь] и прочитайте [ask] –

ответ

1

Я предполагаю, что эта линия, которая дала вам ошибку:

if(updatedBalance.getText() > balance.getText()); { 
    System.out.println("hello"); 
} 

Вы не можете использовать оператор > сравнить строку. Если эти строки представляют собой число, вы должны сначала его преобразовать, например, в целое число или любой тип данных типа, который вы используете. В качестве примера для преобразования строки в целое используют Integer.valueOf(updateBalance.getText()).

Я также вижу, что у вас есть точка с запятой после утверждения if, что, я думаю, вы не имеете в виду, что оно есть.

0

Что вы здесь делаете?

if(updatedBalance.getText() > balance.getText()); { 
      System.out.println("hello"); 
     } 

Прежде всего, System.out.println("hello"); является не связанные с if() условия из-за точкой с запятой после if(), что это ошибка. Затем, что вы хотите получить, сравнивая строки с «>»? Чтобы сравнить длину строк, используйте updatedBalance.getText().length(), чтобы проверить, если строки равны, используйте updatedBalance.getText().equals(balance.getText()).