别的软件都能获得页面源代码xml,但是这个软件点别的页面源代码xml一直是首页的。

别的软件都能获得页面源代码xml,但是这个软件点别的页面源代码xml一直是首页的。

关注让【宝码香车】来帮您解答,本回答参考DeepSeek编写,并整理提供。
如果答案能帮助您,请采纳,非常感谢!
.
每日一句正能量,让它带给您好心情:把快乐装进口袋,随身携带,生活就会充满阳光。
.
根据您的描述,这个问题通常是由于页面加载时机或元素定位策略导致的。以下是几种常见的解决方案:
// 显式等待页面加载完成
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
wait.until(ExpectedConditions.presenceOfElementLocated(By.id("目标页面元素")));
// 获取页面源代码
String pageSource = driver.getPageSource();
# Python 示例
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
# 等待目标页面元素出现
wait = WebDriverWait(driver, 10)
wait.until(EC.presence_of_element_located((By.ID, "目标元素ID")))
# 获取页面源代码
page_source = driver.page_source
// 确保在正确的上下文(WebView 或 Native)中
Set<String> contextNames = driver.getContextHandles();
for (String contextName : contextNames) {
System.out.println("可用上下文: " + contextName);
if (contextName.contains("WEBVIEW")) {
driver.context(contextName);
break;
}
}
// 获取页面源代码
String pageSource = driver.getPageSource();
// 获取当前 Activity
String currentActivity = driver.currentActivity();
System.out.println("当前 Activity: " + currentActivity);
// 确认是否已跳转到目标页面
if (currentActivity.contains("目标Activity")) {
String pageSource = driver.getPageSource();
System.out.println(pageSource);
}
// 方法1: 发送返回键再重新进入
driver.pressKey(new KeyEvent(AndroidKey.BACK));
Thread.sleep(1000);
// 重新点击进入目标页面
// 方法2: 重启应用
driver.launchApp();
// 方法3: 切换到原生上下文再切回
driver.context("NATIVE_APP");
Thread.sleep(1000);
driver.context("WEBVIEW_包名");
public void debugPageSource() {
try {
// 1. 打印当前上下文
System.out.println("当前上下文: " + driver.getContext());
// 2. 打印当前 Activity
System.out.println("当前 Activity: " + driver.currentActivity());
// 3. 等待页面稳定
Thread.sleep(3000);
// 4. 尝试获取页面源代码
String pageSource = driver.getPageSource();
System.out.println("页面源代码长度: " + pageSource.length());
// 5. 保存到文件以便分析
Files.write(Paths.get("page_source.xml"), pageSource.getBytes());
} catch (Exception e) {
e.printStackTrace();
}
}
确保您的 Desired Capabilities 配置正确:
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("platformName", "Android");
caps.setCapability("deviceName", "设备名");
caps.setCapability("appPackage", "应用包名");
caps.setCapability("appActivity", "主Activity");
caps.setCapability("automationName", "UiAutomator2");
caps.setCapability("autoGrantPermissions", true);
caps.setCapability("noReset", false); // 设置为 false 确保每次都是全新启动
建议按照上述方法逐一排查,通常能够解决页面源代码不更新的问题。