Issue
I try to press the following radio button "All Languages"
from this site
using the following code
import os
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
from fake_useragent import UserAgent
if __name__ == '__main__':
os.environ['WDM_LOG_LEVEL'] = '0'
ua = UserAgent()
userAgent = ua.random
options = Options()
# options.add_argument('--headless')
options.add_argument("start-maximized")
options.add_experimental_option("prefs", {"profile.default_content_setting_values.notifications": 1})
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('excludeSwitches', ['enable-logging'])
options.add_experimental_option('useAutomationExtension', False)
options.add_argument('--disable-blink-features=AutomationControlled')
options.add_argument(f'user-agent={userAgent}')
srv=Service(ChromeDriverManager().install())
driver = webdriver.Chrome (service=srv, options=options)
waitWebDriver = WebDriverWait (driver, 30)
link = f"https://www.tripadvisor.com/Hotel_Review-g1066456-d1083444-Reviews-or0-Sakura_Hotel_Hatagaya-Shibuya_T_Kanto.html#REVIEWS"
driver.get (link)
try:
waitWebDriver.until(EC.element_to_be_clickable( \
(By.XPATH, "//button[@id='onetrust-accept-btn-handler']"))).click()
except TimeoutException as ex:
print(f"{ex}")
waitWebDriver.until(EC.element_to_be_clickable( \
(By.XPATH, "//input[@id='LanguageFilter_0']"))).click()
input("Press!")
driver.quit()
But unfortunately, i get this error message:
$ python testScrape.py
Traceback (most recent call last):
File "C:\DEV\Fiverr\TRY\david_defranza\testScrape.py", line 36, in <module>
waitWebDriver.until(EC.element_to_be_clickable( \
File "C:\DEV\.venv\selenium\lib\site-packages\selenium\webdriver\support\wait.py", line 89, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
Why is the button not clicked / found? (the XPath i used works fine when inspecting in the chrome browser)
Solution
use the xpath //label[@for='LanguageFilter_0']
instead of //input[@id='LanguageFilter_0']
,I tried it and it work's fine for me.
Answered By - Rohit
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.