xpathで変数にするとエラーが出る

実現したいこと

Xpathで変数でクリックしたい。

発生している問題・分からないこと

アヒル イワシ  トマト

というhtmlだったとします。

print(driver.find_element(By.XPATH, f'//TD[contains(text(),"アヒル")]').tag_name)
結果:td

box="アヒル"
print(driver.find_element(By.XPATH, f'//TD[contains(text(),{box})]').tag_name)
結果:td

print(driver.find_element(By.XPATH, f'//TD/font[contains(text(),"トマト")]').tag_name)
結果:font

box="トマト"
print(driver.find_element(By.XPATH, f'//TD/font[contains(text(),{box})]').tag_name)
結果:エラー

なぜ、文字列を直接入力すれば成功するのに、変数を割り当てると失敗するのでしょう?
2番目のアヒルでは変数でも成功するのに、2番目のトマトではなぜ失敗するのでしょう?

どうぞよろしくお願いします。

エラーメッセージ

error

1selenium.common.exceptions.InvalidSelectorException: Message: Unable to locate an element with the xpath expression //TD/font[contains(text(),"トマト")]because of the following error: 2[object Error]; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#invalid-selector-exception

該当のソースコード

特になし

試したこと・調べたこと

上記の詳細・結果

print(driver.find_element(By.XPATH, f'//TD/*[contains(text(),{box})]').tag_name)

fontの部分を*に置き換えても、直接文字列では成功しますが、変数に置き換えると失敗します。

補足

特になし

コメントを投稿

0 コメント