硒,如何复制总是不同的几个词?

时间:2019-06-17 09:42:56

标签: java selenium selenium-webdriver

我正在尝试从Web浏览器中自动复制一个名称,但是名称更改了,所以我不知道如何复制它。

我试图对其进行双重滤波或“ ctrl + c”,但是它没有用。

WebDriver driver = new ChromeDriver();

    driver.get("https://realnamecreator.alexjonas.de/?l=de#");
    driver.findElement(By.linkText("[+] Filter-Optionen")).click();
    driver.findElement(By.id("gender")).click();
    new Select(driver.findElement(By.id("gender"))).selectByVisibleText("w");
    driver.findElement(By.id("gender")).click();
    driver.findElement(By.id("button")).click();

,此后,我要将名称复制到我的程序中。所以我会说 字符串文本=驱动程序...

3 个答案:

答案 0 :(得分:3)

首先,您需要检索元素,然后调用记录在here中的getText方法:

driver.findElement(By.id("realname")).getText()

希望有帮助。

答案 1 :(得分:1)

您不应该使用线程休眠...使用WebDriverWait:

WebDriverWait wait = new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("realname")));

然后使用getText()

String text = driver.findElement(By.id("realname")).getText()

希望这会有所帮助!

答案 2 :(得分:0)

您共享的链接在生成并显示名称之前,具有ID为realname的元素。
因此,等待ID为realname的元素的可见性不会给您预期的结果。

您必须等待页面加载时显示但在显示名称时不显示的图像的隐身性。

尝试一下,

WebDriverWait wait = new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.cssSelector("#realname > a")));
String text = driver.findElement(By.id("realname")).getText();