Open Asteriskx opened 7 months ago
SoundCloud Service はまだローカルブランチにしかいないので、 リモートブランチ分のソフト影響は現状不明。 → 但し、挙動を見る感じ Spotify 側の楽曲でも同じ現象となる気がする。
SagiriSelenium 側のソース部分かもと思って調査したけれど、検討違いかもしれない。 → SendKeys の仕様的にも特殊コードは受け付けるとあったから。
/// <summary>
/// Process for uploading album art to Twitter.
/// </summary>
/// <param name="isCompletedPreTask"></param>
/// <param name="tweet"></param>
/// <returns></returns>
private async ValueTask<bool> _UploadAlbumArtProcessAsync(Task seleniumTask, string tweet, bool isUploadPicture)
{
try
{
// Here ChromeDriver instance is not created yet :-(
var waitInterval = (_ChromeDriver is null) ? Helper.InitialInterval : Helper.TinyInterval;
await Task.Delay(waitInterval);
if (!seleniumTask.IsCompletedSuccessfully)
return false;
var textAreaElement = _ChromeDriver?.FindElement(By.ClassName(Helper.TweetTextAreaTag));
textAreaElement?.Click();
textAreaElement?.SendKeys(tweet);
現状なんもわからんになったので、GW 辺りにゆっくりデバッグする予定
ダメだったので、別途考える https://twitter.com/Astrisk_/status/1787457643403161878
ClipBoard 活用で解決した🚀🚀🚀
/// <summary>
/// Process for uploading album art to Twitter.
/// </summary>
/// <param name="seleniumTask"></param>
/// <param name="tweet"></param>
/// <param name="isUploadPicture"></param>
/// <returns></returns>
private async ValueTask<bool> _UploadAlbumArtProcessAsync(Task seleniumTask, string tweet, bool isUploadPicture)
{
try
{
// Here ChromeDriver instance is not created yet :-(
var waitInterval = (_ChromeDriver is null) ? Helper.InitialInterval : Helper.TinyInterval;
await Task.Delay(waitInterval);
if (!seleniumTask.IsCompletedSuccessfully)
return false;
// [Fix] OpenQA.Selenium.WebDriverException.
var textAreaElement = _ChromeDriver?.FindElement(By.ClassName(Helper.TweetTextAreaTag));
textAreaElement?.Click();
//textAreaElement?.SendKeys(tweet);
ClipboardHelper.SetText(tweet);
Actions action = new(_ChromeDriver);
action.KeyDown(Keys.Control);
action.SendKeys("v");
action.KeyUp(Keys.Control);
action.Perform();
一例 : Angeart 氏 remix 楽曲
対策案:現状なし