Питон селен. Как получить текст в мобильном режиме Chrome - PullRequest
0 голосов
/ 13 октября 2019

Извините, я хочу получить элемент мобильного хрома. Теперь я могу получить в body.but не могу получить класс в теле "tableID1" Как получить элемент и текст "tableID1 - tableID10"

a busy cat

мой код может получить толькотело, но не может получить другой элемент.

driver.find_element_by_id("body").get_attribute('innerHTML')

Ответы [ 2 ]

0 голосов
/ 13 октября 2019

Индуцируйте WebDriverWait и presence_of_all_elements_located () или visibility_of_all_elements_located () и используйте ниже xpath. Попробуйте ele.text или ele.get_attribute('textContent')

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

elements=WebDriverWait(driver,20).until(EC.presence_of_all_elements_located((By.XPATH,"//div[@class='table_road_set'][starts-with(@id,'tableID')]")))
for ele in elements:
    print(ele.text)
    print(ele.get_attribute('textContent'))

ИЛИ

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

elements=WebDriverWait(driver,20).until(EC.visibility_of_all_elements_located((By.XPATH,"//div[@class='table_road_set'][starts-with(@id,'tableID')]")))
for ele in elements:
    print(ele.text)
    print(ele.get_attribute('textContent'))

Вы также можете использовать следующий Css Selector.

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

elements=WebDriverWait(driver,20).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR,"div.table_road_set[id^='tableID']")))
for ele in elements:
    print(ele.text)
    print(ele.get_attribute('textContent'))
0 голосов
/ 13 октября 2019

Также нужно изменить размер окна, чтобы отобразить идентификатор, который вы хотите видеть.

Для Chrome просто добавьте перед "webdriver.Chrome" init:

chrome_options.add_argument("--window-size=1920x1080")

Для всех браузеров:

Для этого существует официальная привязка к селену Python: http://selenium.googlecode.com/git/docs/api/py/webdriver_remote/selenium.webdriver.remote.webdriver.html#selenium.webdriver.remote.webdriver.WebDriver.set_window_size

driver.set_window_size(1920, 1080)

или

driver.maximize_window()

или с javascript

driver.execute_script("window.resizeTo(1920,1080)")

Источник: Как изменить размер окна в Chrome и Firefox при тестировании с Selenium?

...