Skip to content

Commit 6f2d7f8

Browse files
author
Ryosuke Uchiyama
committed
2024年6月時点の最新のHPに対応、.NET 4.8対応
1 parent a142f20 commit 6f2d7f8

10 files changed

Lines changed: 107 additions & 68 deletions

File tree

AutomaticReservation_UI/App.config

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
<?xml version="1.0" encoding="utf-8"?>
1+
<?xml version="1.0" encoding="utf-8"?>
22
<configuration>
33
<configSections>
44
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
5-
<section name="AutomaticReservation_UI.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
5+
<section name="AutomaticReservation_UI.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
66
</sectionGroup>
77
</configSections>
88
<startup>
9-
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" />
9+
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
1010
</startup>
1111
<userSettings>
1212
<AutomaticReservation_UI.Properties.Settings>
@@ -27,9 +27,9 @@
2727
<runtime>
2828
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
2929
<dependentAssembly>
30-
<assemblyIdentity name="CommonServiceLocator" publicKeyToken="489b6accfaf20ef0" culture="neutral" />
31-
<bindingRedirect oldVersion="0.0.0.0-2.0.3.0" newVersion="2.0.3.0" />
30+
<assemblyIdentity name="CommonServiceLocator" publicKeyToken="489b6accfaf20ef0" culture="neutral"/>
31+
<bindingRedirect oldVersion="0.0.0.0-2.0.3.0" newVersion="2.0.3.0"/>
3232
</dependentAssembly>
3333
</assemblyBinding>
3434
</runtime>
35-
</configuration>
35+
</configuration>

AutomaticReservation_UI/AutomaticReservation_UI.csproj

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,29 @@
99
<AppDesignerFolder>Properties</AppDesignerFolder>
1010
<RootNamespace>AutomaticReservation_UI</RootNamespace>
1111
<AssemblyName>ホテル自動予約ツール</AssemblyName>
12-
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
12+
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
1313
<FileAlignment>512</FileAlignment>
1414
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
1515
<WarningLevel>4</WarningLevel>
1616
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
1717
<NuGetPackageImportStamp>
1818
</NuGetPackageImportStamp>
19+
<TargetFrameworkProfile />
20+
<PublishUrl>publish\</PublishUrl>
21+
<Install>true</Install>
22+
<InstallFrom>Disk</InstallFrom>
23+
<UpdateEnabled>false</UpdateEnabled>
24+
<UpdateMode>Foreground</UpdateMode>
25+
<UpdateInterval>7</UpdateInterval>
26+
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
27+
<UpdatePeriodically>false</UpdatePeriodically>
28+
<UpdateRequired>false</UpdateRequired>
29+
<MapFileExtensions>true</MapFileExtensions>
30+
<ApplicationRevision>0</ApplicationRevision>
31+
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
32+
<IsWebBootstrapper>false</IsWebBootstrapper>
33+
<UseApplicationTrust>false</UseApplicationTrust>
34+
<BootstrapperEnabled>true</BootstrapperEnabled>
1935
</PropertyGroup>
2036
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
2137
<PlatformTarget>AnyCPU</PlatformTarget>
@@ -27,6 +43,7 @@
2743
<ErrorReport>prompt</ErrorReport>
2844
<WarningLevel>4</WarningLevel>
2945
<RunCodeAnalysis>true</RunCodeAnalysis>
46+
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
3047
</PropertyGroup>
3148
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
3249
<PlatformTarget>AnyCPU</PlatformTarget>
@@ -62,8 +79,8 @@
6279
<Reference Include="Livet, Version=1.3.0.0, Culture=neutral, PublicKeyToken=b0b1d3f711ef38cb, processorArchitecture=MSIL">
6380
<HintPath>..\packages\LivetCask.1.3.1.0\lib\net45\Livet.dll</HintPath>
6481
</Reference>
65-
<Reference Include="log4net, Version=2.0.9.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
66-
<HintPath>..\packages\log4net.2.0.10\lib\net45\log4net.dll</HintPath>
82+
<Reference Include="log4net, Version=2.0.17.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
83+
<HintPath>..\packages\log4net.2.0.17\lib\net45\log4net.dll</HintPath>
6784
</Reference>
6885
<Reference Include="MahApps.Metro, Version=1.6.0.0, Culture=neutral, processorArchitecture=MSIL">
6986
<HintPath>..\packages\MahApps.Metro.1.6.3\lib\net45\MahApps.Metro.dll</HintPath>
@@ -250,18 +267,34 @@
250267
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
251268
</Resource>
252269
</ItemGroup>
270+
<ItemGroup>
271+
<BootstrapperPackage Include=".NETFramework,Version=v4.8">
272+
<Visible>False</Visible>
273+
<ProductName>Microsoft .NET Framework 4.8 %28x86 および x64%29</ProductName>
274+
<Install>true</Install>
275+
</BootstrapperPackage>
276+
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
277+
<Visible>False</Visible>
278+
<ProductName>.NET Framework 3.5 SP1</ProductName>
279+
<Install>false</Install>
280+
</BootstrapperPackage>
281+
</ItemGroup>
253282
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
254283
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
255284
<PropertyGroup>
256285
<ErrorText>このプロジェクトは、このコンピューター上にない NuGet パッケージを参照しています。それらのパッケージをダウンロードするには、[NuGet パッケージの復元] を使用します。詳細については、http://go.microsoft.com/fwlink/?LinkID=322105 を参照してください。見つからないファイルは {0} です。</ErrorText>
257286
</PropertyGroup>
258287
<Error Condition="!Exists('..\packages\Selenium.WebDriver.GeckoDriver.0.20.1\build\Selenium.WebDriver.GeckoDriver.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Selenium.WebDriver.GeckoDriver.0.20.1\build\Selenium.WebDriver.GeckoDriver.targets'))" />
259288
<Error Condition="!Exists('..\packages\Selenium.WebDriver.IEDriver.3.12.0\build\Selenium.WebDriver.IEDriver.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Selenium.WebDriver.IEDriver.3.12.0\build\Selenium.WebDriver.IEDriver.targets'))" />
260-
<Error Condition="!Exists('..\packages\Selenium.WebDriver.ChromeDriver.118.0.5993.7000\build\Selenium.WebDriver.ChromeDriver.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Selenium.WebDriver.ChromeDriver.118.0.5993.7000\build\Selenium.WebDriver.ChromeDriver.targets'))" />
289+
<Error Condition="!Exists('..\packages\Selenium.WebDriver.ChromeDriver.125.0.6422.14100\build\Selenium.WebDriver.ChromeDriver.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Selenium.WebDriver.ChromeDriver.125.0.6422.14100\build\Selenium.WebDriver.ChromeDriver.targets'))" />
261290
</Target>
262291
<Import Project="..\packages\Selenium.WebDriver.GeckoDriver.0.20.1\build\Selenium.WebDriver.GeckoDriver.targets" Condition="Exists('..\packages\Selenium.WebDriver.GeckoDriver.0.20.1\build\Selenium.WebDriver.GeckoDriver.targets')" />
263292
<Import Project="..\packages\Selenium.WebDriver.IEDriver.3.12.0\build\Selenium.WebDriver.IEDriver.targets" Condition="Exists('..\packages\Selenium.WebDriver.IEDriver.3.12.0\build\Selenium.WebDriver.IEDriver.targets')" />
264-
<Import Project="..\packages\Selenium.WebDriver.ChromeDriver.118.0.5993.7000\build\Selenium.WebDriver.ChromeDriver.targets" Condition="Exists('..\packages\Selenium.WebDriver.ChromeDriver.118.0.5993.7000\build\Selenium.WebDriver.ChromeDriver.targets')" />
293+
<Import Project="..\packages\Selenium.WebDriver.ChromeDriver.125.0.6422.14100\build\Selenium.WebDriver.ChromeDriver.targets" Condition="Exists('..\packages\Selenium.WebDriver.ChromeDriver.125.0.6422.14100\build\Selenium.WebDriver.ChromeDriver.targets')" />
294+
<PropertyGroup>
295+
<PreBuildEvent>taskkill /f /im chromedriver.exe 2&gt;nul 1&gt;nul
296+
exit 0</PreBuildEvent>
297+
</PropertyGroup>
265298
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
266299
Other similar extension points exist, see Microsoft.Common.targets.
267300
<Target Name="BeforeBuild">

AutomaticReservation_UI/Properties/AssemblyInfo.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
[assembly: AssemblyConfiguration("")]
1515
[assembly: AssemblyProduct("AutomaticReservation_UI")]
1616
[assembly: AssemblyCompany("minato project")]
17-
[assembly: AssemblyCopyright("Copyright © minato 2018-2023")]
17+
[assembly: AssemblyCopyright("Copyright © minato 2018-2024")]
1818
[assembly: AssemblyTrademark("")]
1919
[assembly: AssemblyCulture("")]
2020

@@ -53,8 +53,9 @@
5353
// You can specify all the values or you can default the Build and Revision Numbers
5454
// by using the '*' as shown below:
5555
// [assembly: AssemblyVersion("1.0.*")]
56-
[assembly: AssemblyVersion("2023.10.28.1")]
57-
[assembly: AssemblyFileVersion("2023.10.28.1")]
56+
[assembly: AssemblyVersion("2024.06.05.01")]
57+
[assembly: AssemblyFileVersion("2024.06.05.01")]
5858

5959
// log4netを利用するための設定
6060
[assembly: log4net.Config.XmlConfigurator(ConfigFile= @"Log4net.Config.xml", Watch=true)]
61+
[assembly: NeutralResourcesLanguage("ja-JP")]

AutomaticReservation_UI/Properties/Resources.Designer.cs

Lines changed: 29 additions & 38 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

AutomaticReservation_UI/Properties/Settings.Designer.cs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

AutomaticReservation_UI/ToyokoInn/Reservation.cs

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -242,16 +242,19 @@ public bool Execute()
242242
{
243243
log.Debug("予約中");
244244
Message = "予約中";
245+
// 利用目的をチェック
246+
log.Debug($"処理中:{SiteConfig.XPATH_PURPOSE_OF_USE}");
247+
driver.FindElement(By.XPath(SiteConfig.XPATH_PURPOSE_OF_USE)).Click();
245248
// 電話番号入力
246-
log.Debug(String.Format("処理中:{0}", SiteConfig.XPATH_TEL));
249+
log.Debug($"処理中:{SiteConfig.XPATH_TEL}");
247250
driver.FindElement(By.XPath(SiteConfig.XPATH_TEL)).SendKeys(_loginInfo.LoginTel);
248251
// チェックイン予定時刻
249-
log.Debug(String.Format("処理中:{0}", SiteConfig.XPATH_CHKINTIME));
252+
log.Debug($"処理中:{SiteConfig.XPATH_CHKINTIME}");
250253
var chktime_element = driver.FindElement(By.XPath(SiteConfig.XPATH_CHKINTIME));
251254
var chktime_select_element = new SelectElement(chktime_element);
252255
chktime_select_element.SelectByValue(ProcFormat.CheckinValue.CheckinValue);
253256
// 確認ボタン押下
254-
log.Debug(String.Format("処理中:{0}", SiteConfig.XPATH_CONFIRM));
257+
log.Debug($"処理中:{SiteConfig.XPATH_CONFIRM}");
255258
driver.FindElement(By.XPath(SiteConfig.XPATH_CONFIRM)).Click();
256259

257260
// 同一日で予約があった場合
@@ -261,8 +264,11 @@ public bool Execute()
261264
var wait = new WebDriverWait(driver, new TimeSpan(0, 0, 3));
262265

263266
// iframeに操作をスイッチ
264-
wait.Until(ExpectedConditions.FrameToBeAvailableAndSwitchToIt(By.CssSelector(SiteConfig.IFRAME_OVERWRITE)));
265-
log.Debug(String.Format("処理中:{0}", SiteConfig.XPATH_OVERWRITE));
267+
var iframe = driver.FindElement(By.CssSelector(SiteConfig.IFRAME_OVERWRITE));
268+
driver.SwitchTo().Frame(iframe);
269+
270+
//wait.Until(ExpectedConditions.FrameToBeAvailableAndSwitchToIt(By.CssSelector(SiteConfig.IFRAME_OVERWRITE)));
271+
log.Debug($"処理中:{SiteConfig.XPATH_OVERWRITE}");
266272
if (SiteConfig.STR_OVERWRITE.Equals(driver.FindElement(By.XPath(SiteConfig.XPATH_OVERWRITE)).Text))
267273
{
268274
if (ProcFormat.EnableOverwrite)
@@ -283,11 +289,15 @@ public bool Execute()
283289
{
284290
// 何もしない
285291
}
292+
finally
293+
{
294+
driver.SwitchTo().DefaultContent();
295+
}
286296

287297
// 予約&正常終了確認
288298
try
289299
{
290-
300+
291301

292302
// 20180407 規約に同意チェック欄対応
293303
// チェックボックスにチェック
@@ -346,7 +356,7 @@ public bool Execute()
346356
{
347357
log.Error(ex.ToString());
348358
if (ProcFormat.EnableAutoRetry)
349-
{
359+
{
350360
log.Info("処理を続行します");
351361
}
352362
else

AutomaticReservation_UI/ToyokoInn/SiteConfig.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ public static class SiteConfig
4848
/// </summary>
4949
public static string XPATH_ADDRESS = "//*[@id=\"mainArea\"]/section[ITER_REGION]/section[ITER_HOTEL]/div/div[3]";
5050
/// <summary>
51+
/// (XPATH) 利用目的 - 出張・ビジネス
52+
/// </summary>
53+
public static string XPATH_PURPOSE_OF_USE = "//*[@id=\"purpose-business\"]";
54+
/// <summary>
5155
/// (XPath) 連絡先電話番号
5256
/// </summary>
5357
public static string XPATH_TEL = "//*[@id=\"mainArea\"]/section[2]/div/div[3]/div/div[1]/table/tbody/tr[8]/td/span/input";

0 commit comments

Comments
 (0)