因此,我在帶有 Java 的 Android Studio 中使用 Selenium 啟動了一個新專案,看來我遇到了問題。我想要做的是打開instagram然后點擊唯一重要的cookies,填寫名稱和密碼,直到它完美運行,但之后無論我嘗試什么它都不會按下登錄按鈕它只會停止所以這是我的代碼(我當然改變了我的用戶名和密碼):
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public static void main(String[] args) {
System.setProperty("webdriver.safari.driver","/usr/bin/safaridriver");
SafariDriver driver = new SafariDriver();
driver.get("https://www.instagram.com/accounts/login/?hl=en&source=auth_switcher");
new WebDriverWait(driver, Duration.ofSeconds(10));
driver.findElement(By.className("HoLwm")).click();
driver.findElement(By.name("username")).sendKeys("xyzzy");
driver.findElement(By.name("password")).sendKeys("xyzzy");
new WebDriverWait(driver, Duration.ofSeconds(10));
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(20));
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("\"//button[@type='submit']\"")));
driver.findElement(By.xpath("\"//button[@type='submit']\"")).click();
new WebDriverWait(driver, Duration.ofSeconds(10));
}
不知何故我得到一個錯誤:
Exception in thread "main" org.openqa.selenium.TimeoutException: Expected condition failed: waiting for element to be clickable: By.xpath: "//button[@type='submit']" (tried for 20 second(s) with 500 milliseconds interval)
Build info: version: '4.1.3', revision: '7b1ebf28ef'
Driver info: org.openqa.selenium.safari.SafariDriver
Capabilities {acceptInsecureCerts: false, browserName: Safari, browserVersion: 15.4, javascriptEnabled: true, platform: MAC, platformName: MAC, safari:automaticInspection: false, safari:automaticProfiling: false, safari:diagnose: false, safari:platformBuildVersion: 20G527, safari:platformVersion: 11.6.5, safari:useSimulator: false, setWindowRect: true, strictFileInteractability: false, webkit:WebRTC: {DisableICECandidateFiltering: false, DisableInsecureMediaCapture: false}}
Session ID: D249B2A9-5C9F-4000-A778-8D9B4D81A240
at org.openqa.selenium.support.ui.WebDriverWait.timeoutException(WebDriverWait.java:87)
at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:231)
at com.example.instagramrepost.MainActivity.main(MainActivity.java:39)
有人可以幫我嗎謝謝
uj5u.com熱心網友回復:
如果您添加了登錄頁面 html 代碼示例,將會非常有幫助,您可以使用 Web Inspector (Safari) 或 Web Developer (Chrome) 來捕獲頁面代碼。
但是在野外猜測,您的 xpath 中似乎有額外的內容\",可能是由于復制粘貼。
嘗試By.xpath("//button[@type='submit']")代替By.xpath("\"//button[@type='submit']\""),它應該會找到您的按鈕。
uj5u.com熱心網友回復:
我找到了答案:
WebElement element = driver.findElement(By.cssSelector("button[type='submit']"));
((JavascriptExecutor)driver).executeScript("arguments[0].click();", element);
此代碼 100% 的時間有效但仍然感謝那些試圖幫助我解決這個問題的人
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/454461.html
標籤:爪哇 硒 安卓工作室 硒网络驱动程序 Instagram
