Új hozzászólás Aktív témák
-
Karma
félisten
Vannak bejáratott algoritmusok kulcsgenerálásra, például a PBKDF2. Szerintem alapvetően fatális ötlet bármilyen kriptográfiával kapcsolatos implementációnak nekiállni, mert ebben a témakörben túl könnyű hibázni - lásd axioma megjegyzését a kulcsok értékkészletéről.
(Kivéve, ha házi feladatról van szó és konkrétan ez a feladat.)
RexpecT: Nem ártana egy kis kód, hogy hogyan próbálod meghívni az URL-t.
-
axioma
veterán
1. Elvi szinten nagyon nem ertek egyet az ilyen modon torteno AES kulcs megadassal (gyakorlatilag 256^16 helyett kb. 80^16 kulcsot "engedsz meg" - klavirol elerheto kis/nagy betuk, szmaok, gyakoribb jelek), ezzel kapasbol mar matematikailag is tobb mint 8 nagysagrenddel csokkented a lehetosegeket... de ha az emberek jelszoadasi szokasait nezzuk, kb. beepited a rendszerbe a betoresi pontot a human tenyezovel).
2. Mi az oka annak, hogy a char array-t string tombbe masolva akarod kiegesziteni? Nem latom a koncepciot.
Sot azt sem igazan, hogy minek jon be a char array... te egy 16 hosszu stringet akarsz, akkor ha nagyobb, akkor subString, ha kisebb, akkor meg mondjuk (ha nagyon egyszeru/fapados kodot szeretnel) ciklusban hozzaadsz amig nem jo a hossz egy "c"-t.
Vagy me'g egyszerubb ha mindkettot egy lepesben intezed el... azaz a bejovo stringhez alapbol hozzaadod azt a fix stringet, amiben 16 db 'c' van, es veszed a subString-gel az elso 16 karaktert. Ez mindharom esetre egyetlen utasitassal visszaadja az altalad va'gyott tipusu kiegeszitest.szerk. kellett nekem ennyit gepelni
-
Karma
félisten
Az Arrays.toString helyesen működik, épp csak nem azt csinálja, amit szeretnél. Ami egyébként nem is teljesen világos, micsoda.
-
WonderCSabo
félisten
Én nem látok itt semmi átalakítást. Működik is nekem:
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>seleniumtest</groupId>
<artifactId>seleniumtest</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.45.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.sourceforge.htmlunit</groupId>
<artifactId>htmlunit</artifactId>
<version>2.16</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>Teszt osztály:
public class HtmlUnitTest {
@Test
public void testHtmlUnit() {
WebDriver driver = new HtmlUnitDriver();
driver.get("http://www.google.com");
WebElement element = driver.findElement(By.name("q"));
element.sendKeys("htmlunit");
element.submit();
System.out.println("Page title is: " + driver.getTitle());
driver.quit();
}
}Mondjuk alapból 2.15-ös htmlunit-ot használ a legújabb Selenium, szóval nagy változásokra nem kell számítani a 2.16-s verziótól...
-
WonderCSabo
félisten
Ha rendes függőségkezelést használt (pl. Maven vagy Gradle), akkor egyszerűen csak deklarálni kell az újabb verziót és azt fogja használni. Ha az egybecsomagolt zipet használod, akkor ki kell dobni onnan kézzel a libs mappából a htmlunit jart, és berakni az újabbat.
-
floatr
veterán
Igaza van a többieknek a Writer osztályokkal kapcsolatban a doksi alapján, de:
public abstract class Writer implements Appendable, Closeable, Flushable {
...
abstract public void close() throws IOException;
...
}garancia nincsen rá h az implementációk meg is fogják csinálni.
public class FileWriter extends OutputStreamWriter {
...
}a FileWriter egy OutputStreamWriter "wrapper"
public class OutputStreamWriter extends Writer {
private final StreamEncoder se;
...
public void close() throws IOException {
se.close();
}
...
}namost a StreamEncoder nálam egy sun csomagos implementáció, a bytekód szerint úgy látom h meghív két flush jellegű metódust
void implClose() throws java.io.IOException;
0 aload_0 [this]
1 aconst_null
2 iconst_1
3 invokespecial sun.nio.cs.StreamEncoder.flushLeftoverChar(java.nio.CharBuffer, boolean) : void [64]
6 aload_0 [this]
7 getfield sun.nio.cs.StreamEncoder.encoder : java.nio.charset.CharsetEncoder [39]
10 aload_0 [this]
11 getfield sun.nio.cs.StreamEncoder.bb : java.nio.ByteBuffer [41]
14 invokevirtual java.nio.charset.CharsetEncoder.flush(java.nio.ByteBuffer) : java.nio.charset.CoderResult [71]tehát elvileg jó a cucc, ha a sort lezárod. Ennek ellenére én továbbra is aszondom, hogy ártani nem árt, ha használod a flush-t, ráadásul ha netán Writer helyett OutputStream-et használsz valahol, akkor megkíméled magad egy sunyi problémától.
-
WonderCSabo
félisten
Számomra jónak tűnik a cucc, le is futtattam, létrehozza a fájlt és logol is bele. Két gondolatom van csak:
Settings.logging esetleg nem false?
FileWriter fw = new FileWriter(logFile.getName(),true);
Ezzel vigyázz, mert ez csak a current directoryban fogja létrehozni a fájlt a névvel, szóval nem ott lesz, ahol sejted. Pl. ha IDE-ből futtatod:
logFile útvonala a build mappában belül log.txt
new FileWriter(logFile.getName(),true) viszont az aktuális mappában, tehát a projekt mappában hozza létre a fájlt és írja
Szerk.: Közben már látom megtaláltad a jó megoldást, de akkor a posztom alapján már érted, hogy az előző miért nem ment.
-
dabadab
titán
Ja, nem kellett volna ennyit bor a vacsorahoz
(Mondjuk jelen esetben a BufferedWriternek sok ertelme nincs, az akkor jonne jol, ha sok kis irasod lenne, ha egyszer irsz csak, akkor csak lassit.)
(Egyebkent a logFile-t mindenestul is atadhatod neki, fogad File-t is a FileWriter konstruktora.)Exceptiont sem dob?
-
plaschil
aktív tag
FirePath-al nézem meg. Vagy nem erre vagy kíváncsi?
-
plaschil
aktív tag
Megvan!
Biztos valami új verzió miatt, de már nem kell elé az xpath= csak simán így: //input[contains(@id,'TextBox_szerzodes')]
Plusz lassítani kellett a lejátszáson, mert hiába volt a szintaxisa megfelelő, akkor is hibára futott.Következő kérdés: mivel nyílhatnak egymásra panelek (akár több is, úgy képzeljétek el mint egy vastagkliensben) ezért lehetséges az, hogy pl. akár több "Save" gomb is legyen, mind különböző, de dinamikus ID-val. Így mivel tudom megkülönböztetni őket? Class? Esetleg van lehetőség ezzel a fenti megoldással ÉS kapcsolatba fűzni még feltételt, hogy pontosan melyik "Save" gombot akarom megnyomni?
(A "Save" csak egy példa, a szemléltetés miatt)Első megközelítésben így gondolkodom. Az egyedi ID témát hagyjuk, mert az egész motor így működik.
Köszönöm az eddigi helpet, értem miért kopaszodik az összes fejlesztő.
Ja! Options->Clipboard format mire való?
-
#03372544
törölt tag
Ilyesmire gondolt a kolléga.
package example;
public interface Job {
void doTheJob();
}
-------------------------------------------------------------------------------------------------------------------------
package example;
public class ExecuteThisJob implements Job {
@Override
public void doTheJob() {
System.out.println("ezt végrehajtom");
}
}
-------------------------------------------------------------------------------------------------------------------------
package example;
public class RunningOutOfIdeasJob implements Job {
@Override
public void doTheJob() {
System.out.println("nincs több ötletem");
}
}
-------------------------------------------------------------------------------------------------------------------------
package example;
public class StartSomethingJob implements Job {
@Override
public void doTheJob() {
System.out.println("valamit elindítok");
}
}
-------------------------------------------------------------------------------------------------------------------------
package example;
import java.util.HashMap;
import java.util.Map;
public class JobFactory {
private static final JobFactory INSTANCE;
static {
INSTANCE = new JobFactory();
}
private Map<String, Job> jobMapping;
private JobFactory() {
jobMapping = new HashMap<String, Job>();
jobMapping.put("executeThis", new ExecuteThisJob());
jobMapping.put("startSomething", new StartSomethingJob());
jobMapping.put("runningOutOfIdeas", new RunningOutOfIdeasJob());
}
public static Job getJob(String jobType) {
return INSTANCE.jobMapping.get(jobType);
}
}
-------------------------------------------------------------------------------------------------------------------------
package example;
public class JobFactoryExample {
private JobFactoryExample() {
}
public static void main(String[] args) {
JobFactoryExample example = new JobFactoryExample();
example.doTheAction("executeThis");
example.doTheAction("startSomething");
example.doTheAction("runningOutOfIdeas");
}
public void doTheAction(String actionName) {
JobFactory.getJob(actionName).doTheJob();
}
} -
#03372544
törölt tag
Sehogy, az interrupt() csak beállít egy flag-et amit neked kell futás közben ellenőrizned az isInterrupted() metódussal.
Egy-az-egyben kilőni a szálat nem tudod, régen lehetett a stop() metódussal de az elég sok problémát felvet ezért későbbi Java verziókban deprecated lett majd ki is vették, UnsupportedOperationExcepcion-t dob hogy véletlenül se használd.
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- ÁRGARANCIA!Épített KomPhone i5 13400F 16/32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Lenovo ThinkPad X270 (16) - i5-7300U, 16GB, 512GB SSD, 12" FULL HD
- Microsoft Surface Laptop 3 - 15 col - Fekete
- Bomba ár! HP ZBook Studio G5 - i9-9980H I 32GB I 1TSSD I Nvidia I 15,6" FHD I Cam I W11 I Gar
- Samsung Galaxy A32 4G 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: PC Trade Systems Kft.
Város: Szeged