Okay, I had the same issue and it hasn't been resolved yet so I came up with solution like that:
if(GrandExchange.openBuyScreen(1)) { // opens buy screen
if(Sleep.sleepUntil(() -> GrandExchange.isBuyOpen(), 4000)) { // waits until open
if(Widgets.getWidgetChild(465, 25, 0) != null && Widgets.getWidgetChild(465, 25, 0).isVisible()) { // checks if the icon that is placeholder for the item in the buy screen is visible and even exists
Widgets.getWidgetChild(465, 25, 0).interact("Choose item"); // iteracts with this button
Sleep.sleep(1000, 2500);
GrandExchange.buyItem(properItemID, buyItemLive, properItemIDPrice); //now this works
Sleep.sleep(1500, 2500);
}
}
}
This solution works, but of course if anything changes with the client and the ID of the widget child changes - you will need to change it too manually. But if it works - leave it Remember to delete comments // 😜