当前位置: 首页 > 知识库问答 >
问题:

无法向页面发送密钥

澹台聪
2023-03-14

我正在尝试登录到https://support.sentinelone.com/通过selenium。不知何故,我无法输入我的凭据。这是我的密码。

public static void main(String[] args) throws InterruptedException {
        System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + "/chromedriver");

        ChromeOptions options = new ChromeOptions();
        WebDriver driver = new ChromeDriver();
        driver.manage().window().maximize();
        driver.get("https://support.sentinelone.com/hc/en-us/restricted?return_to=https%3A%2F%2Fsupport.sentinelone.com%2Fhc%2Fen-us");
        Thread.sleep(5000);
        WebDriverWait wait = new WebDriverWait(driver, 60);// 1 minute
        wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("descendant::*[@class='credentials']/descendant::input[1]")))
                .sendKeys("myUser@user.com");

        driver.findElement(By.cssSelector("#user_password")).sendKeys("myPassword");
        driver.findElement(By.id("sign-in-submit-button")).click();
        Thread.sleep(500);
        List<WebElement> folders = driver.findElements(By.cssSelector(".blocks-item a"));
        System.out.println(folders.size());
        driver.findElement(By.cssSelector(".blocks-item:nth-child(1) a")).getAttribute("href");
    }

我得到的错误是

异常在线程"main"org.openqa.selenium.Timeout异常:预期条件失败:等待可见性的元素位于By.xpath:后代::*[@class='凭据']/后代::输入[1](尝试60秒(s)以500毫秒间隔)构建信息:版本:'4.1.0',修订:'87802e897b'系统信息:主机:'rkeerthi-mba',ip:'fe80:0:0:0:8ff:bcdc:1025:e4b1%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '11.5', java.version: '16.0.2' Driver info: org.openqa.selenium.chrome.ChromeDriver Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 97.0.4692.99, chrome: {chromedriverVersion: 97.0.4692.71 (adefa7837d02a..., userDataDir: /var/folders/6h/hr_vvn9j0sl...}, goog:chromeOptions: {debuggerAddress: localhost:52226}, javascriptEnabled: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: MAC, platformName: MAC, proxy: Proxy(), se:cdp: ws://localhost:52226/devtoo..., se:cdpVersion: 97.0.4692.99, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:virtualAuthenticators: true} Session ID: 2f312b7acb65d1e79b013c4f4e05a6db at org.openqa.selenium.support.ui.WebDriverWait.timeoutException(WebDriverWait.java:138) at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:231) at SentinalOneCrawler.main(SentinalOneCrawler.java:24)

我不知道我错在哪里。请让我知道如何解决这个问题。

共有1个答案

叶允晨
2023-03-14

您的定位器是正确的,但Creds输入框位于iframe中。

因此,首先切换到具有以下XPath的iframe:

//iframe[@frameborder]

然后你就可以访问这个元素了。

new WebDriverWait(driver, Duration.ofSeconds(30)).until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.xpath("//iframe[@frameborder]")));

一旦切换到帧,使用以下行:

wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("descendant::*[@class='credentials']/descendant::input[1]")))
            .sendKeys("myUser@user.com");

此外,完成iframe后,您应该切换回defaultContent

driver.switchTo().defaultContent();
 类似资料:
  • 我正在尝试使用从hotmail帐户发送邮件。 到目前为止,我还使用gmail帐户测试了我的代码,一切都很好,但使用hotmail没有任何特别的工作,我收到了。 这是我用来发送邮件的代码: 如您所见,我创建了一个PropertiesFactory,以便为我使用的每个特定邮件主机创建Properties对象的特定实例。在代码中有HotmailProperties结构的工厂。 开始调试会话时,我检查了u

  • 我的代码如下:, 从服务器通知FCM(C#) 我对上述要求的答复 {"multicast_id":5002368547300,"成功": 1,"失败": 0,"canonical_ids": 0,"结果":[{"message_id":"0:14200031 c4rrr5787蛋"}]} 我假设一旦FCM收到新的通知,它将把这些通知推送到各自的Android设备。 但对我来说,它不起作用。

  • 我一直在与Twilio合作,向一个应用程序的潜在用户发送短信。我已经想出了如何向美国号码发送信息,但向国际移动用户发送短信就更棘手了。我来这里是想看看是否有人能帮我找出我做错了什么,并听听任何解决问题的建议。我已经建立了一个简单的网页,其中有一个国际代码的下拉菜单,以及移动号码的输入表单和一个将信息发送到Twilio服务器的按钮。其代码如下所示: 另一个PHP(textmelink.PHP)文件处

  • 我正在使用kafka java客户端和kafka服务器。 我的代码: Kafka马纳格 当我的循环长度如果在1000左右(在类)时,我就能成功地向Kafka主题发送数据。 但当我的循环长度为1或小于10时,我无法向Kafka主题发送数据。注意我没有得到任何错误。 根据我的发现,如果我想发送一个单一的消息到Kafka主题,根据这个程序我得到了成功的消息,但从来没有得到一个关于我的主题的消息。 但是如

  • 问题内容: 由于某种原因,我无法将字符“ 3”写入页面上的输入元素。 这段代码: 导致在登录输入中写入“ 1245” …有人可以帮忙吗?我使用python 2.7,最新的chrome和最新的chromedriver 编辑: 也不管用。 -字符串中仅缺少“ 3” … 起作用的是 正如安德森(Andersson)在下文中建议的那样,但这不是解决方案。 我在Google搜索框中进行了尝试,并且遇到了相同

  • 我尝试使用firebase通知控制台发送通知,它工作正常,但在代码中会抛出错误{“multicast_id”:469219618584251399,“success”:0,“failure”:1,“canonical_id”:0,“results”:[{“error”:“InvalidRegistration”}]}我的代码:-