Как найти кнопку, содержащую текст с Selenium? - PullRequest
0 голосов
/ 23 ноября 2018

Что мне нужно : перейдите на вкладку Reviews в описании расширения из Chrome Store (например, this * ), чтобы подсчитать количество отзывов.

Что я сделал: Использовал BeautifulSoup + Selenium для переключения между вкладками.Я использовал driver.find_element_by_id('id') НО , он возвращает ошибку, что не может найти элемент.

Вот код, который я использую:

    from selenium import webdriver
    driver = webdriver.Chrome()
    driver.get(url)
    button = driver.find_element_by_id(':22')
    button.click()
    page = requests.get(driver.current_url)
    soup = BeautifulSoup(page.content,'html5lib')
    comment_list = soup.find('div', class_ = 'e-f-b-L') #the class of reviews I need to count.

Вот HTML-код элемента кнопки Review:

enter image description here

Проблемы:

Как мне сделать это, нажав кнопку «Отзывы», чтобы отобразить вкладку «Отзывы»?

1 Ответ

0 голосов
/ 23 ноября 2018

Вы можете плавно щелкнуть по этой вкладке Reviews Если вы определите простой xpath, например '//div[.="Reviews"]' или около того.Проверьте сценарий как подтверждение концепции:

from selenium import webdriver
from selenium.webdriver.support import ui

url = "https://chrome.google.com/webstore/detail/emoji-keyboard-by-emojion/ipdjnhgkpapgippgcgkfcbpdpcgifncb?hl=en"

driver = webdriver.Chrome()
wait = ui.WebDriverWait(driver, 10)
driver.get(url)
wait.until(lambda driver: driver.find_element_by_xpath('//div[.="Reviews"]')).click()
driver.quit()

Чтобы сделать его безголовым:

from selenium import webdriver
from selenium.webdriver.support import ui

url = "https://chrome.google.com/webstore/detail/emoji-keyboard-by-emojion/ipdjnhgkpapgippgcgkfcbpdpcgifncb?hl=en"

chromeOptions = webdriver.ChromeOptions()
chromeOptions.add_argument("--headless")
driver = webdriver.Chrome(chrome_options=chromeOptions)
wait = ui.WebDriverWait(driver, 10)
driver.get(url)
wait.until(lambda driver: driver.find_element_by_xpath('//div[.="Reviews"]')).click()
print("It's done")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...