質問編集履歴
6
本文修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Python Seleniumでスクレイピングするときに、下記コードのuntilによる待機を入れていますが、たまにエラーが出ている時があるため、調査すると、要素がうまく取得できていませんでした。
|
2
2
|
|
3
|
-
下記のコードでは、class xxxが取得できるまで待機を指示していますが、
|
3
|
+
下記のコードでは、class xxxが取得できるまで待機を指示していますが、次の要素まで表示されていないタイミングで取得している時があるのではないかと懸念しております。
|
4
4
|
|
5
5
|
class名 + class名 + valueまで待機を指示するように書き換えることはできますでしょうか?
|
6
6
|
```python
|
5
説明文修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
下記のコードでは、class xxxが取得できるまで待機を指示していますが、aタグまで表示されていないタイミングで取得している時があるのではないかと懸念しております。
|
4
4
|
|
5
|
-
class名 + a
|
5
|
+
class名 + class名 + valueまで待機を指示するように書き換えることはできますでしょうか?
|
6
6
|
```python
|
7
7
|
element = wait.until(EC.visibility_of_all_elements_located((By.CLASS_NAME, "xxx")), message = "タイムアウト")
|
8
8
|
```
|
4
コード修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
|
10
10
|
取得したい要素
|
11
11
|
```python
|
12
|
-
ex = driver.find_element_by_class_name("FPdoLc.lJ9FBc").find_element_by_
|
12
|
+
ex = driver.find_element_by_class_name("FPdoLc.lJ9FBc").find_element_by_class_name("gNO89b").get_attribute("value")
|
13
13
|
```
|
14
14
|
|
15
15
|
全文です
|
3
コード修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
|
10
10
|
取得したい要素
|
11
11
|
```python
|
12
|
-
ex = driver.find_element_by_class_name("FPdoLc.lJ9FBc").find_element
|
12
|
+
ex = driver.find_element_by_class_name("FPdoLc.lJ9FBc").find_element_by_tag_name("gNO89b").get_attribute("value")
|
13
13
|
```
|
14
14
|
|
15
15
|
全文です
|
2
コード修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
|
10
10
|
取得したい要素
|
11
11
|
```python
|
12
|
-
ex = driver.find_element
|
12
|
+
ex = driver.find_element_by_class_name("FPdoLc.lJ9FBc").find_elements_by_tag_name("gNO89b").get_attribute("value")
|
13
13
|
```
|
14
14
|
|
15
15
|
全文です
|
@@ -25,29 +25,8 @@
|
|
25
25
|
try:
|
26
26
|
driver.get("https://www.google.com/")
|
27
27
|
element = wait.until(EC.visibility_of_all_elements_located((By.CLASS_NAME, "xxx")), message = "タイムアウト")
|
28
|
-
ex = driver.find_element
|
28
|
+
ex = driver.find_element_by_class_name("FPdoLc.lJ9FBc").find_element_by_class_name("gNO89b").get_attribute("value")
|
29
29
|
except Exception as e:
|
30
30
|
print(location(), e)
|
31
31
|
print(traceback.format_exc())
|
32
32
|
```
|
33
|
-
|
34
|
-
```python
|
35
|
-
def foo(driver):
|
36
|
-
x = driver.find_elements_by_class_name("FPdoLc.lJ9FBc")
|
37
|
-
print(location(), len(x))
|
38
|
-
if len(x)>=1:
|
39
|
-
y = x[0].find_elements_by_class_name("gNO89b")
|
40
|
-
print(location(), len(y))
|
41
|
-
if len(y)>0:
|
42
|
-
return y[0]
|
43
|
-
return False
|
44
|
-
try:
|
45
|
-
driver.get("https://www.google.com/")
|
46
|
-
# sleep(3)
|
47
|
-
ex1 = wait.until(foo(driver), message = "タイムアウト")
|
48
|
-
ex2 = driver.find_element_by_class_name("FPdoLc.lJ9FBc").find_element_by_class_name("gNO89b").get_attribute("value")
|
49
|
-
print(location(), ex2)
|
50
|
-
except Exception as e:
|
51
|
-
print(location(), e, traceback.format_exc())
|
52
|
-
print(traceback.format_exc())
|
53
|
-
```
|
1
コード修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -30,3 +30,24 @@
|
|
30
30
|
print(location(), e)
|
31
31
|
print(traceback.format_exc())
|
32
32
|
```
|
33
|
+
|
34
|
+
```python
|
35
|
+
def foo(driver):
|
36
|
+
x = driver.find_elements_by_class_name("FPdoLc.lJ9FBc")
|
37
|
+
print(location(), len(x))
|
38
|
+
if len(x)>=1:
|
39
|
+
y = x[0].find_elements_by_class_name("gNO89b")
|
40
|
+
print(location(), len(y))
|
41
|
+
if len(y)>0:
|
42
|
+
return y[0]
|
43
|
+
return False
|
44
|
+
try:
|
45
|
+
driver.get("https://www.google.com/")
|
46
|
+
# sleep(3)
|
47
|
+
ex1 = wait.until(foo(driver), message = "タイムアウト")
|
48
|
+
ex2 = driver.find_element_by_class_name("FPdoLc.lJ9FBc").find_element_by_class_name("gNO89b").get_attribute("value")
|
49
|
+
print(location(), ex2)
|
50
|
+
except Exception as e:
|
51
|
+
print(location(), e, traceback.format_exc())
|
52
|
+
print(traceback.format_exc())
|
53
|
+
```
|