小编Nan*_*n A的帖子

无法对位于 Flexbox 下的元素执行任何操作

Selenium能够访问findElement位于flex框下的元素,但无法对这些元素执行任何操作。下面我提供了几个示例网站以供详细了解,


示例#1:

网站:https : //condos.ca/

HTML片段

<div class="styles___SearchField-sc-ntshwn-1 azZjo">
   <div class="styles___SiteSearch-sc-ntshwn-3 bvlPAF">
  <div class="styles___InputIcon-sc-ntshwn-4 eAuylQ">
     <svg viewBox="0 0 59.93 60" class="styles___Svg-sc-14upfal-0 frvNPk svg-icon" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="width: 20px; height: 20px;">
        <path d="M59.23,55.73L44.33,40.81a25,25,0,1,0-3.53,3.54L55.7,59.27A2.5,2.5,0,1,0,59.23,55.73ZM5,25A20,20,0,1,1,25,45,20,20,0,0,1,5,25Z" transform="translate(-0.03)"></path>
     </svg>
  </div>
  <input aria-label="Search by address, Neighbourhood, MLS #" placeholder="Search by address, Neighbourhood, MLS #" id="search-input">
   </div>
   <div class="styles___GetLocationContainer-sc-ntshwn-5 cCBUUE">
  <button target="_blank" name="search nearby button" class="styles___AppButton-sc-5pk18n-0 jXQNUT styles___SearchNearby-sc-ntshwn-6 dYpkAS" id="">
     <svg viewBox="0 0 20 20" class="styles___Svg-sc-14upfal-0 frvNPk svg-icon" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" …
Run Code Online (Sandbox Code Playgroud)

html python java selenium flexbox

8
推荐指数
1
解决办法
1225
查看次数

如何禁用DEBUG消息Selenium 4.0

我一直在尝试禁用控制台的调试消息,但无论我做什么,它仍然显示在控制台上。我需要找到一种方法来禁用控制台上 HTTP 请求和响应的持续日志记录。使用的代码:


System.setProperty(ChromeDriverService.CHROME_DRIVER_SILENT_OUTPUT_PROPERTY, "true");
java.util.logging.Logger.getLogger("org.openqa.selenium").setLevel(Level.SEVERE);
HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
 

   chromePrefs.put("profile.default_content_settings.popups", 0);
    chromePrefs.put("download.default_directory", downloadPath);
    ChromeOptions options = new ChromeOptions();
    options.setExperimentalOption("prefs", chromePrefs);

    options.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
    options.setCapability(ChromeOptions.CAPABILITY, options);
    // options.setCapability(ChromeOptions.CAPABILITY, options);
    LoggingPreferences logPrefs = new LoggingPreferences();
    logPrefs.enable(LogType.PERFORMANCE, Level.ALL);
    options.addArguments("--disable-logging");
    options.addArguments("--log-level=3");
    options.addArguments("--silent");
    options.setCapability( "goog:loggingPrefs", logPrefs );
    options.setCapability(CapabilityType.LOGGING_PREFS, logPrefs);
    options.setAcceptInsecureCerts(true);
    System.out.println("Launching Google Chrome Browser");
    //ChromeDriverManager.getInstance(CHROME).setup();
    WebDriverManager.chromedriver().setup();
    //   options.merge(cap);



   driver = new ChromeDriver(options);
      
  driver.manage().timeouts().implicitlyWait(TimeOut,TimeUnit.SECONDS);
    driver.manage().window().maximize();

Run Code Online (Sandbox Code Playgroud)

在控制台上

Request DefaultHttpRequest(decodeResult: success, version: HTTP/1.1)
POST /session HTTP/1.1
User-Agent: selenium/4.0.0 (java windows)
Content-Length: 1259
Content-Type: application/json; charset=utf-8 …
Run Code Online (Sandbox Code Playgroud)

selenium selenium-webdriver selenium4

5
推荐指数
1
解决办法
3503
查看次数

有没有办法在不切换的情况下获取浏览器的所有选项卡标题?

我可以通过切换到每个选项卡来获取所有打开的选项卡标题。就像下面这样,

代码

ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());
    
    for(int i = 0; i < tabs.size(); i++) {
        driver.switchTo().window(tabs.get(i));
        System.out.println(driver.getTitle());
    }
Run Code Online (Sandbox Code Playgroud)

输出

Google
Home
Run Code Online (Sandbox Code Playgroud)

有没有什么办法可以不切换就获得所有的称号呢?像下面这样的东西,

for(String tab : tabs){
  System.out.println(tab)
}
Run Code Online (Sandbox Code Playgroud)

但上面的代码返回选项卡 ID。

CDwindow-54AD3D4D73FFC6A60F79C1E56B131C2B
CDwindow-046B8E378703FEAAD1002BF3F835BAB7 
Run Code Online (Sandbox Code Playgroud)

java selenium selenium-webdriver

4
推荐指数
1
解决办法
1467
查看次数

标签 统计

selenium ×3

java ×2

selenium-webdriver ×2

flexbox ×1

html ×1

python ×1

selenium4 ×1